回收站中的文件數量有限制嗎?

回收站中的文件數量有限制嗎?

幾週前,我小心翼翼地刪除了資料磁碟機的舊備份。我在舊備份和即時副本之間進行了重複文件檢查,並將舊副本刪除到回收站。一切進展順利,正如預期的那樣,直到突然我無法再刪除任何內容。每當我嘗試刪除文件時——任何文件-從舊的備份,它會失敗。

我檢查了回收站,我發現這可能是因為那裡只是文件太多在垃圾桶裡。我不是說尺寸,但是數位文件數量。以下是有關情況的一些事實:

  • 它是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 多個文件,並在資源管理器中刪除了這些文件
(在刪除之前花了一些時間來收集資訊:)

因為回收站中的檔案名稱是等De1De2這些都是長檔案名稱(因為大小寫混合)。刪除 32765 個檔案後,資源管理器出現錯誤。

dir /a/x了我 32767 個檔案和 2 個目錄。
32765 個使用者檔案(其中低頻網路)、一個INFO2desktop.ini(兩者都沒有 LFN)。

(32765 * 2) = 65530 + 2 (不含 LFN) + 2 個目錄條目 = 65534

嗯,還有 2 點;)

對於 65534,它應該能夠再增加 1(使用 LFN)。所以我認為 Windows 可能需要一個額外的免費條目來存放一些臨時檔案。

但正如你所看到的限制為 65530 個目錄條目其中每個文件佔用2個
32765 文件因為產生的檔名是大小寫混合的甚至更少如果擴展更大則 3)。

當我測試這個時,文件名都是De1De2等等...(所有文件沒有擴展名的原始文件)您的文件名有擴展名。如果它們具有較長的副檔名 (>3),則可能需要更多條目,因為 Windows 會在回收站中保留副檔名。

但確實奇怪的是,微軟並沒有選擇在回收站中只使用短名稱,因為(原始)文件名應該存儲在INFO2.


編輯#3:

我剛剛確認了Windows的刪除機制確實需要一個額外的目錄條目。

xcopy e:\recycled\*.* e:\test\ /e/s/h使用了完整的回收站,將回收站中的所有檔案(32767 個檔案)複製到測試目錄。

我仍然可以De_test1.txte:\test.創建時De_test2.txt出錯。

因此,「Windows 刪除」應該足以再建立 1 個 (LFN) 文件,但由於內部原因,它不能。

因此對於普通資料夾.和= 65534 個條目的限制為 65536 -2 ..
並為回收站.和是 65536 -2,和..是 -2desktop.iniINFO2
-2 對於 temp.file (?) = 65530 個條目
,如果有 65530 個條目,則最多有 32765 個檔案(並且較少的如果擴展名 >3)。

相關內容