Windows 檔案系統 (NTFS/FAT32) 對檔名尾部的「點 (.)」與「空白」有特殊處理規則:尾部點號會被系統自動去除、尾部空白會被保留但介面不顯示。利用此特性,可建立一個在圖形介面 (Explorer) 無法進入、無法刪除、無法重新命名,但命令列可正常存取的資料夾,作為私密資料暫存區。本文詳細說明原理、建立/進入/刪除步驟、適用場景與風險提醒。
CreateFile, FindFirstFile 等) 在處理路徑時,會自動移除檔名/資料夾名尾部的點號 (.) 和空白。Secret.. (兩個點),系統視為 Secret. (一個點) → 再移除尾部點 → Secret (無尾點)。Secret. (單點),但實體目錄項為 Secret..。Secret.,系統嘗試開啟 Secret (已移除尾點) → 找不到目標 → 無法進入。\\?\,可繞過自動修剪,正常存取。cmd → Enter。D: Enter。md Secret.. Enter。md 之間有空格,尾部兩個點,無反斜線。dir /x 顯示短檔名與長檔名,確認長檔名為 Secret..。; 方法 1:使用延伸路徑前綴 (推薦,支援超長路徑/特殊字元) cd \\?\D:\Secret.. ; 方法 2:直接輸入實體名稱 (需在同目錄下) cd Secret.. ; 方法 3:PowerShell (原生支援尾點) Set-Location -LiteralPath 'D:\Secret..'
; 確認資料夾為空或已備份重要檔案 rd \\?\D:\Secret.. ; 或 rmdir /s /q \\?\D:\Secret..
; 複製檔案進入 copy "C:\SecretData.txt" "\\?\D:\Secret..\" ; 複製檔案出來 copy "\\?\D:\Secret..\SecretData.txt" "C:\" ; 在資料夾內建立子資料夾/檔案 md "\\?\D:\Secret..\SubFolder" echo "Hidden" > "\\?\D:\Secret..\note.txt"
md "Hidden " ; 尾部一個空白 (引號內含空白) cd "\\?\D:\Hidden " rd "\\?\D:\Hidden "
效果相同,但空白在檔案總管完全不可見,更隱蔽;需注意複製路徑時空白易遺漏,建議統一用 \\?\ 延伸路徑。
| 場景 | 適用性 | 說明 |
|---|---|---|
| 防止同事/家人誤刪/誤開 | ★★★★☆ | 圖形介面完全無法操作,命令列門檻過濾 99% 非技術人員 |
| 隱藏敏感檔案 (非加密) | ★★★☆☆ | 僅隱形非加密,具備命令列能力者可讀取;機密資料請用 BitLocker/VeraCrypt/7-Zip AES-256 加密 |
| 惡意軟體/掃描器規避 | ★★☆☆☆ | 現代殺毒/EDR 掃描引擎直接遍歷 NTFS MFT,不經由 Win32 API,無效 |
| 跨平台/網路共享 | ★☆☆☆☆ | Linux/macOS/SMB/NFS/FTP 客戶端行為不一,可能正常顯示/存取或報錯 |
| 系統備份/還原/遷移 | ⚠️ 風險 | 部分備份軟體可能跳過/報錯;遷移前請先用命令列改回正常名稱 |
dir /x /b \\?\D:\Secret.. 確認內容,再 rd /s /q \\?\D:\Secret..。結語:利用檔名尾點特性建立「防刪防進」資料夾,是 Windows 檔案系統冷知識的經典展示。理解其原理 (API 修剪尾點) 與邊界 (僅影響 Win32 圖形介面),能在特定場景 (共用電腦防誤刪、臨時隱形存放) 派上用場,**但絕不能替代真正的加密與存取控制**。資料安全的核心永遠是:加密 + 最小權限 + 異地備份 + 定期演練。