Tôi có một tình huống sau:của Windows hệ thống tập tin: Thời gian tạo của một tập tin không thay đổi khi thời gian sẽ bị xóa và tạo lại
1: Tạo một bó của tập
2: Gọi một số ứng dụng bên ngoài mà xử lý tất cả các file theo thời gian tạo khác nhau từ ảnh chụp cuối cùng
3: Xóa file
4: goto 1
Hóa ra là cửa sổ không đảm bảo rằng nó sẽ thay đổi thời gian tạo khi người dùng tạo tệp, xóa tệp và tạo tệp có cùng tên.
Tôi đã viết một kịch bản PowerShell nhỏ mà xác minh này:
ls | Remove-Item
$fileListOld = @{}
foreach($i in 1..1000)
{
$fname = [string]::Format("{0}.txt", $i)
"tst" >> $fname
}
ls | % { $fileListOld[$_.Name] = $_ }
ls | Remove-Item
foreach($i in 1..1000)
{
$fname = [string]::Format("{0}.txt", $i)
"tst" >> $fname
}
$fileListNew = @{}
ls | % { $fileListNew[$_.Name] = $_ }
$count = 0
foreach ($fname in $fileListNew.Keys)
{
if ($fileListNew[$fname].CreationTimeUtc -eq $fileListOld[$fname].CreationTimeUtc)
{
Write-Host Same creation time -ForegroundColor Red
Write-Host $fname -ForegroundColor Red
$count++
}
}
Write-Host $count
Output:
...
...
Same creation time
241.txt
Same creation time
944.txt
Same creation time
908.txt
Same creation time
631.txt
Same creation time
175.txt
Same creation time
798.txt
Same creation time
192.txt
Same creation time
961.txt
Same creation time
476.txt
Same creation time
566.txt
Same creation time
945.txt
Same creation time
681.txt
Same creation time
880.txt
Same creation time
162.txt
Same creation time
634.txt
Same creation time
746.txt
Same creation time
442.txt
Same creation time
35.txt
Same creation time
96.txt
Same creation time
771.txt
Same creation time
787.txt
Same creation time
972.txt
Same creation time
642.txt
Same creation time
495.txt
Same creation time
625.txt
Same creation time
666.txt
Same creation time
660.txt
Same creation time
6.txt
Same creation time
593.txt
Same creation time
549.txt
Same creation time
842.txt
Same creation time
314.txt
Same creation time
148.txt
**1000**
Nếu tôi ngủ trong một thời gian (> 30s) sau khi xóa tất cả các file sẽ có tem thời gian chính xác.
Có cách nào để giải quyết vấn đề này không? Một số cuộc gọi winapi có thể xóa tập tin cho tốt?
Điều này được gọi là "đường hầm". Xem [bài viết KB này] (http://support.microsoft.com/?kbid=172190) để biết thêm chi tiết. (Các tập tin bị xóa cho tốt. Nó chỉ là thời gian tạo và siêu dữ liệu khác đang được thực hiện trên.) –
@RaymondChen, đọc giữa các dòng tôi thu thập rằng điều này là để bảo quản tên tập tin dài cho các chương trình đang làm việc với tên tập tin ngắn? –
Đó là một phần của nó. Nhưng cũng cho các ứng dụng sử dụng thủ thuật tạo/đổi tên/xóa để thay thế một tệp. Điều này truyền siêu dữ liệu từ tệp cũ sang tệp mới. –