Wie kann ich das Datum einer Datei ändern?

717
Aemerzel

Wir haben eine Anwendung, die mit Dateien arbeitet. Die Anwendung bricht ab, wenn eine Datei gefunden wird, für die kein Änderungsdatum / Datum erstellt wurde (das Feld blinkt buchstäblich im Explorer und über get-childitem).

Wie kann ich eine solche Datei in unserer Umgebung erstellen, um einige Lösungen lokal auszuprobieren? Ich habe dumme Sachen ausprobiert

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

aber das scheint nicht zu funktionieren. Google war auch nicht sehr hilfreich, aber ich wäre für Tipps in die richtige Richtung dankbar

2
Es ist keine Datei vorhanden, für die kein Änderungsdatum / -datum erstellt wurde. harrymc vor 6 Jahren 0
Das stimmt nicht wirklich, weil ich diese Dateien in einer Remote-Sitzung mit unseren Benutzern gesehen habe und die App dann repariert habe, indem die Dateien an einen anderen Ort verschoben wurden (den unsere App nicht berührt hat). Ihr Änderungsdatum ist leer. Dies ist definitiv der Fall, zum Beispiel [hier] (https://central.owncloud.org/t/date-modified-field-blank-cannot-sync/10927) oder [hier] (https: / /www.techsupportforum.com/forums/f10/date-modified-is-blank-in-windows-explorer-266648.html) Aemerzel vor 6 Jahren 0
Ihr erster Link: * Bei näherer Betrachtung zeigt das Feld "Änderungsdatum" für alle kürzlich synchronisierten Dateien beim Anzeigen der Dateieigenschaften tatsächlich "31. Dezember 1969" ... *. Das Änderungsdatum kann Müll sein, aber es ist da. harrymc vor 6 Jahren 0
Verdammt, du bist ein Genie Das im Explorer geänderte Datum wird nach $ Files = ls "C: \ Users \ Triumvirate \ tmp" ForEach ($ File in $ Files) {$ File.LastWriteTime = Get-Date ("31) leer angezeigt / 12/1969 ")} Aemerzel vor 6 Jahren 0
Anscheinend hast du das schon gefunden. Ich konnte das Datum und die Uhrzeit einer Datei auf leer stellen. Erstellt einen C # -Code und setzt das Datum auf "01/01/1970 00: 00: 00". Sandeep vor 6 Jahren 0
Das Problem ist, dass das Datum eigentlich nicht nur im Explorer leer war, sondern auch, als ich ls -s von Powershell ausgeführt habe. Wenn ich das Datum auf 1970 gesetzt habe, ist das Datum im Explorer leer (was erwartet wird, funktioniert auf meinem Heim-PC ) aber das Datum ist * nicht * leer, wenn ich ls -s starte Aemerzel vor 6 Jahren 0
Wo werden diese Dateien erstellt? Ist es eine externe Software? Welches Betriebssystem und Dateisystem wird zum Speichern dieser Dateien verwendet? Nicht alle Dateisysteme unterstützen alle Felder. Sandeep vor 6 Jahren 0
Sandeep, Diese Dateien, die ich auf dem Computer eines Benutzers gesehen habe, sind Bilder. Es könnten also einige Exif-Phänomene sein. Betriebssystem ist Windows 10, Dateisystem ist NTFS. ls -s zeigt kein Datum, Explorer zeigt kein Datum. Aemerzel vor 6 Jahren 0

2 Antworten auf die Frage

0
harrymc

Sie beherbergen anscheinend die Dateien auf einem Gerät, das Abfalldaten zurückgibt, die vom Explorer nicht angezeigt werden.

Wenn dies ein Cloud-Speicherdienst ist und Datumsangaben wichtig sind, sollten Sie möglicherweise zu einem anderen Dienst wechseln, wenn dessen Support keine Lösung bereitstellen kann.

Die Daten werden nicht nur im Explorer angezeigt, sondern auch über Get-ChildItem -recurse in Powershell Aemerzel vor 6 Jahren 0
In beiden Fällen kann dieselbe Software von Microsoft verwendet werden. harrymc vor 6 Jahren 0
Harrymc, das ist auf jeden Fall möglich, aber wenn ich manuell eine Datei mit LastWriteTime = 31/12/1969 erstelle, ist sie im Explorer leer, wird aber in Get-childitem korrekt angezeigt, was bedeutet, dass sie nicht * genau * gleich ist. Der Fall, den ich untersuche, hat ein eigentlich leeres Datum geändert, was ich untersuchen und replizieren wollte, um eine richtige Lösung zu bieten, aber ich verstehe nicht, wie ich dies replizieren kann. Ich habe den Verdacht, dass angesichts der Tatsache, dass es sich bei diesen Dateien um Bilder von einer Kamera handelt, die Möglichkeit einer Exif-Korruption besteht. Aemerzel vor 6 Jahren 0
Windows versteht Exif nicht. Das Dateisystem, das von diesem Gerät oder Dienst verfügbar gemacht wird, enthält einen Teil der Einträge, die Windows auf diesem virtuellen Laufwerk sieht. harrymc vor 6 Jahren 0
0
Aemerzel

Ich habe eine Lösung für dieses dunkle Problem gefunden, das Sie verwenden können.

Hier sind die Replikationsschritte:

  1. Zugriff auf den Ordner über Bash (ich bin Dualboot, also habe ich dies bei meiner Ubuntu-Installation gemacht)
  2. touch -d "1/1/1500" Dateiname.Erweiterung (Jedes Jahr <1600 reicht aus, da ich glaube, dass Fat64-Daten mit 1601 beginnen
  3. Wenn Sie sich die Datei in Powershell oder Explorer ansehen, erhalten Sie ein leeres "Änderungsdatum":

Power Shell Forscher