Utworzono niepoprawną datę dla plików w systemie Windows podczas kopiowania plików, jeśli plik już istnieje

9

Mam problem z kopiowaniem plików (lub tworzeniem nowych plików) w systemie Windows 7. Jeśli skopiuję plik, oczekuję, że data utworzenia będzie poprawna, ale czasem tak nie jest. Zwykle działa, ale oto przykład, kiedy nie działa:

Mam dwa foldery na pulpicie, folder 1 i folder 2. Tworzę nowy plik tekstowy w folderze 1 o nazwie 852pm (lub za każdym razem, gdy został utworzony). Kopiuję plik do folderu 2. Skopiowany plik ma poprawną datę utworzenia. Usuwam skopiowany plik, czekam minutę i kopiuję go ponownie. Data utworzenia jest nieprawidłowa. Data utworzenia pochodzi z usuniętego pliku.

Próbowałem najpierw opróżnić kosz, ale to nie działa. A czasem utworzenie nowego pliku o tej samej nazwie pokazuje starą datę utworzenia (i zmodyfikowaną nową datę).

Dlaczego to się dzieje? Jak mogę sprawić, aby nowe pliki w tej sytuacji pokazywały prawidłowe daty utworzenia?

theMaxx
źródło

Odpowiedzi:

11

Tunelowanie plików

Cytując oficjalny artykuł bazy wiedzy Windows NT zawiera funkcje tunelowania systemu plików :

Dzieje się tak po usunięciu lub zmianie nazwy i ponownym wprowadzeniu nowego wpisu katalogu z tą meta-informacją (jeśli tworzenie lub zmiana nazwy spowoduje ponowne pojawienie się pliku o tej nazwie w krótkim czasie).

Chodzi o to, aby naśladować zachowanie programów MS-DOS, które używają bezpiecznej metody zapisywania. Kopiują zmodyfikowane dane do pliku tymczasowego, usuwają oryginał i zmieniają nazwę tymczasowego na oryginalny. Po zakończeniu powinien wyglądać na oryginalny plik. Windows wykonuje tunelowanie zarówno w systemach plików FAT, jak i NTFS, aby zapewnić zachowanie długich / krótkich nazw plików, gdy 16-bitowe aplikacje wykonają tę bezpieczną operację składowania.

W artykule wyjaśniono również, jak zwiększyć czas buforowania lub całkowicie wyłączyć funkcje tunelowania.

Wyłącz tunelowanie plików

  1. Naciśnij Win+ R, wpisz regedit, a następnie kliknij OK .

  2. Przejdź do następującego klucza rejestru:

    HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Control \ FileSystem
    
  3. Kliknij prawym przyciskiem myszy pusty obszar w prawym okienku i wybierz Nowy> Wartość DWORD (32-bit) .

  4. Nazwij nową wartość MaximumTunnelEntries.
    Upewnij się, że jest ustawiony na 0: oznacza to, że nie zostaną utworzone żadne wpisy tunelu.

Dodatkowe informacje

Nazwa „tunelowanie” pochodzi od mechaniki kwantowej (całkiem fajnie):

Deweloper, który był odpowiedzialny za wdrożenie tunelowania w systemie Windows 95, poniekąd poruszyła analogia mechaniki kwantowej: fragmenty informacji o ostatnio usuniętych lub ostatnio zmienionych nazwach plików są przechowywane w strukturach danych zwanych „kwarkami”.

Źródło: apokryficzna historia tunelowania systemu plików

Dalsza lektura

Edelwater
źródło
0

Możesz ręcznie zaktualizować czas tworzenia za pomocą tego polecenia:

powershell (ls YourFile.txt).CreationTime = Get-Date

... i to samo w pliku wsadowym:

call powershell "(ls YourFile.txt).CreationTime = Get-Date"
bpelhos
źródło