幾週前,我小心翼翼地刪除了資料磁碟機的舊備份。我在舊備份和即時副本之間進行了重複文件檢查,並將舊副本刪除到回收站。一切進展順利,正如預期的那樣,直到突然我無法再刪除任何內容。每當我嘗試刪除文件時——任何文件-從舊的備份,它會失敗。
我檢查了回收站,我發現這可能是因為那裡只是文件太多在垃圾桶裡。我不是說尺寸,但是數位文件數量。以下是有關情況的一些事實:
- 它是Windows XP系統
- 舊備份所在的磁碟區是 FAT32
- 包含舊備份的磁碟區有 302MB 的可用空間
- bin 中有 31,594 個文件時出現問題
- 回收的文件使用了 236MB
- 文件
INFO2
(追蹤回收文件的原始文件名)超過 24MB - 嘗試再刪除一個檔案也行不通無論其大小
- 回收站配置為對所有驅動器沒有限制
我試著查一下這個,但是我能找到的最接近的是有關限制的信息尺寸的回收站,沒有任何關於文件數量。
有人聽過嗎?誰能確認有限制多少可以儲存檔案嗎?
答案1
FAT32 目錄可以有 65,536 個目錄項目。
每個檔案和子目錄包含 2 到 13 個條目,取決於其名稱的長度。
因此,在最樂觀的情況下,如果檔案名稱都在 8.3 範圍內,您的回收站可以容納 65,536 /2 = 32768 個檔案+目錄。 (簡稱)
您的 31594 個檔案 + 53 個目錄似乎已達到限制。
由於文件名較長,可能有一些文件需要超過 2 個條目。
編輯:
FAT32 規範可在此處取得:
http://www.microsoft.com/whdc/system/platform/firmware/fatgen.mspx
它提供了所有內容的詳細信息,包括目錄結構和長文件名 (LFN) 在目錄中的儲存方式。基本上,有一個目錄條目始終保存檔案名稱的短版本 (8.3)。由於 Windows 需要區分長檔案名稱 (LFN) 的大小寫,因此需要為 LFN 提供單獨的目錄條目(如果長度超過 13 個字符,則為多個目錄條目)。
為了滿足存取局部性和透明性的目標,長目錄項目被定義為具有特殊屬性的短目錄項目。
編輯#2:
我在裝有 Windows XP 和 FAT32 驅動器(最大回收站)的虛擬機器中進行了一些測試。
在一個data
目錄中,我建立了一個子目錄,test
然後執行此批次檔:
@echo off
if "%1"=="####" goto %1
for %%a in (0 1 2 3 4 5 6 7 8 9 A B C D E F) do call %0 #%1 %2 %3 %4 %%a
goto EOF
:####
echo %2%3%4%5
echo test > test\%2%3%4%5
:EOF
產生 65534 個檔案(僅限短名稱)。如預期的那樣,由於有 2 個目錄條目(和) ,它無法添加最後兩個文件(FFFE
和) 。所以只取 2 個條目,稍後再了解)FFFF
.
..
.
..
接下來,我選擇了 45000 多個文件,並在資源管理器中刪除了這些文件
(在刪除之前花了一些時間來收集資訊:)
因為回收站中的檔案名稱是等De1
,De2
這些都是長檔案名稱(因為大小寫混合)。刪除 32765 個檔案後,資源管理器出現錯誤。
給dir /a/x
了我 32767 個檔案和 2 個目錄。
32765 個使用者檔案(其中低頻網路)、一個INFO2
和desktop.ini
(兩者都沒有 LFN)。
(32765 * 2) = 65530 + 2 (不含 LFN) + 2 個目錄條目 = 65534
嗯,還有 2 點;)
對於 65534,它應該能夠再增加 1(使用 LFN)。所以我認為 Windows 可能需要一個額外的免費條目來存放一些臨時檔案。
但正如你所看到的限制為 65530 個目錄條目其中每個文件佔用2個
。32765 文件因為產生的檔名是大小寫混合的甚至更少如果擴展更大則 3)。
當我測試這個時,文件名都是De1
,De2
等等...(所有文件沒有擴展名的原始文件)您的文件名有擴展名。如果它們具有較長的副檔名 (>3),則可能需要更多條目,因為 Windows 會在回收站中保留副檔名。
但確實奇怪的是,微軟並沒有選擇在回收站中只使用短名稱,因為(原始)文件名應該存儲在INFO2
.
編輯#3:
我剛剛確認了Windows的刪除機制確實需要一個額外的目錄條目。
我xcopy e:\recycled\*.* e:\test\ /e/s/h
使用了完整的回收站,將回收站中的所有檔案(32767 個檔案)複製到測試目錄。
我仍然可以De_test1.txt
在e:\test
.創建時De_test2.txt
出錯。
因此,「Windows 刪除」應該足以再建立 1 個 (LFN) 文件,但由於內部原因,它不能。
因此對於普通資料夾.
和= 65534 個條目的限制為 65536 -2 ..
。
並為回收站.
和是 65536 -2,和..
是 -2desktop.ini
INFO2
和-2 對於 temp.file (?) = 65530 個條目
,如果有 65530 個條目,則最多有 32765 個檔案(並且較少的如果擴展名 >3)。