Неправильна дата, створена для файлів у Windows під час копіювання файлів, якщо файл уже існував


9

У мене виникають проблеми при копіюванні файлів (або створенні нових файлів) у Windows 7. Якщо я копіюю файл, я думаю, що створена дата є правильною, але іноді це не так. Зазвичай це працює, але ось приклад, коли він не працює:

У мене на робочому столі дві папки, папка 1 та папка 2. Я створюю новий текстовий файл у папці 1, що називається 852pm (або коли б вона була створена). Я копіюю файл у папку 2. Скопійований файл має правильну дату створення. Я видаляю скопійований файл, зачекайте хвилину і знову скопіюйте його. Дата створення помилкова. Дата створення - із видаленого файлу.

Я спробував спочатку спорожнити кошик, але це не спрацювало. І іноді створення нового файлу з тим самим іменем показує стару дату створення (і з новою датою, змінену).

Чому це відбувається? Як я можу зробити так, щоб нові файли в цій ситуації показували правильні дати створення?

Відповіді:


11

Тунелювання файлів

Цитуючи офіційну статтю KB, Windows NT містить можливості налаштування файлової системи :

Це відбувається після видалення або перейменування та повторного введення нового запису каталогів з цією метаінформою (якщо створюється чи перейменовується, щоб файл цього імені знову з’явився за короткий проміжок часу).

Ідея полягає в тому, щоб імітувати поведінку, яку очікують програми MS-DOS, коли вони використовують метод безпечного збереження. Вони копіюють змінені дані у тимчасовий файл, видаляють оригінал та перейменують тимчасовий у вихідний. Це, мабуть, буде оригінальним файлом після завершення. Windows виконує тунелювання на файлових системах FAT та NTFS, щоб забезпечити збереження довгих / коротких імен файлів, коли 16-бітні програми виконують цю безпечну операцію збереження.

У статті також пояснюється, як збільшити час кешу або взагалі відключити можливості тунелювання.

Вимкнути тунелювання файлів

  1. Натисніть Win+ R, введіть regeditта натисніть кнопку ОК .

  2. Перейдіть до наступного ключа реєстру:

    HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Control \ FileSystem
    
  3. Клацніть правою кнопкою миші порожню область на правій панелі та виберіть Нове> DWORD (32-бітне значення) .

  4. Назвіть нове значення MaximumTunnelEntries.
    Переконайтеся, що встановлено 0: це означає, що записи тунелю не створюватимуться.

Додаткова інформація

Назва "тунелювання" походить від квантової механіки (досить круто):

Розробник, який відповідав за впровадження тунелінгу на Windows 95, захопився аналогією квантової механіки: фрагменти інформації про нещодавно видалені або нещодавно перейменовані файли зберігаються в структурах даних під назвою "кварки".

Джерело: Апокрифічна історія тунелювання файлової системи

Подальше читання


0

Ви можете оновити час створення за допомогою цієї команди вручну:

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

... те саме в пакетному файлі:

call powershell "(ls YourFile.txt).CreationTime = Get-Date"
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.