Comment corrompre la date d'un fichier modifié

2

Nous avons une application qui fonctionne avec des fichiers. L'application se brise chaque fois qu'elle rencontre un fichier sans date modifiée / date créée (le champ clignote littéralement dans l'explorateur et via get-childitem)

Comment créer un tel fichier dans notre environnement pour essayer quelques solutions localement? J'ai essayé des choses idiotes comme

$Files = ls "C:\Users\Triumvirate\tmp"
ForEach ($File in $Files){
    $File.LastWriteTime = $null
}

mais cela ne semble pas fonctionner. Google n'a pas été très utile non plus, mais je vous serais reconnaissant de tout conseil dans la bonne direction.

Aemerzel
la source
Il n'y a pas de fichier qui n'a pas de date modifiée / date créée.
harrymc
Ce n'est pas vraiment vrai, car j'ai vu ces fichiers en session distante avec nos utilisateurs, puis réparé l'application en déplaçant les fichiers vers un autre emplacement (que notre application n'a pas touché). Leur date de modification est
vide
Votre premier lien: regardant de plus près, lors de l' affichage des propriétés du fichier, la « Date de modification » champ pour tous dit en fait des fichiers récemment synchronisés du « 31 Décembre, 1969 » ... . La date de modification peut être une foutaise, mais c'est là.
harrymc
Bon sang, vous êtes un génie. La date modifiée dans l'explorateur sera vide après $ Files = ls "C: \ Users \ Triumvirate \ tmp" ForEach ($ File in $ Files) {$ File.LastWriteTime = Get-Date ("31 /
12/1969
On dirait que vous avez déjà trouvé ça. J'ai pu modifier la date / heure d'un fichier à vider. Création d'un code C # et définition de la date 01/01/1970 00:00:00.
Sandeep

Réponses:

0

Vous logez apparemment les fichiers sur un périphérique qui renvoie des dates de récupération qui ne sont pas affichées par Explorer.

S'il s'agit d'un service de stockage en nuage et que les dates sont importantes, vous pouvez envisager de passer à un autre service, si leur support ne peut pas fournir de correctif.

harrymc
la source
Les dates ne sont pas seulement affichées dans Explorer, mais également dans PowerShell via Get-ChildItem -recurse
Aemerzel le
Le même logiciel peut être utilisé par Microsoft dans les deux cas.
harrymc
Harrymc, c’est certainement possible, mais lorsque je crée manuellement un fichier avec LastWriteTime = 31/12/1969, il est vide dans l’explorateur, mais s’affiche correctement dans Get-childitem, ce qui signifie que ce n’est pas exactement le même. Le dossier sur lequel je suis en train d’examiner a une date vide en fait modifiée, ce que j’ai voulu enquêter et reproduire pour offrir une solution adéquate, mais je ne comprends pas comment le reproduire. Je soupçonne qu'étant donné que ces fichiers sont des images provenant d'un appareil photo, il est possible qu'il y ait une corruption extrême qui le cause?
Aemerzel
Windows ne comprend pas exif. Le système de fichiers exposé par ce périphérique ou ce service présente des erreurs dans certaines parties des entrées que Windows voit sur ce disque virtuel.
harrymc
0

J'ai trouvé une solution à ce problème obscur que vous pouvez utiliser.

Voici les étapes de la réplication:

  1. Accédez au dossier via bash (je double démarrage, donc je l'ai fait sur mon installation Ubuntu)
  2. touch -d "1/1/1500" nom_fichier.extension (N'importe quelle année <1600 fera l'affaire parce que je crois que les dates Fat64 commencent par 1601
  3. En regardant le fichier dans powershell ou l'explorateur, vous obtiendrez un "Date de modification" vierge:

Powershell Explorateur

Aemerzel
la source