問題
系統怪癖2026年8月30日檔名結尾有空格,Windows 跟 Mac 會當成同一個檔嗎?
WindowsmacOSNTFSAPFS
詳細說明
Windows 先把結尾空格削掉
Microsoft 的檔名文件寫得很直:不要讓檔名或資料夾名以空白或句點結尾。底層檔案系統也許吃得下這種名字,Windows 的 shell 跟使用者介面不吃。另一篇支援文章把日常行為講死:用 ASCII 空白(0x20)開頭或結尾的名字,存進去時那些字元會被拿掉;結尾句點也一樣。Object Manager 在建立時就動手。所以你在檔案總管把 report.txt 改成「report.txt 」(後面多一格),磁碟上通常還是 report.txt。NTFS 其實可以留下那個空格——只是一般 Win32 路徑會先做字串解析。同一份文件說,路徑前加 \\?\ 前綴會關掉這層解析,把名字原樣交給檔案系統。
Mac 會把那個空白留下來
Apple 的 APFS 說明寫:建立檔名時只接受合法 UTF-8,並在磁碟上保留檔名的大小寫與正規化。ASCII 空白是合法 UTF-8,沒有被列成禁止字元。Mac 上那個「report.txt 」可以是真的多一格。這不表示兩邊把它們當同一個檔——剛好相反。若這種名字後來出現在 NTFS 上,Microsoft 的排除故障文件舉了例子:同一個資料夾裡同時有 AFile.txt 跟「AFile.txt 」(後面有空格),用一般 Win32 去開第二個,實際開到的是第一個。Explorer 可能看得到,卻刪不掉、改不了,因為路徑在送進檔案系統前,結尾空格已經被削掉了。要對到那個真的帶空格的名字,得用文件寫的 \\?\ 語法。
來源
也有人這樣問
檔名結尾空格、filename trailing space Windows Mac、Windows 檔名空格被刪掉、檔名後面空白 Windows Mac、trailing space filename NTFS