Windows 使用 Win32 命名空間來確定文件和文件夾名稱的有效性。根據命名空間,規則之一是名稱不能包含尾隨空格或句點(點)。因此,諸如“file.txt.”或“file.txt”(注意末尾的空格)之類的內容將無效。
但是,在某些情況下您可以創建或擁有此類文件或文件夾。每當您嘗試刪除、重命名、移動或複制此類文件或文件夾時,Windows 都會將其視為尾隨空格或句點不存在。所以它會搜索其他項目。
在這種情況下,您會收到一條錯誤消息,顯示“未找到項目。找不到該商品。它不再位於…”要解決此問題,您需要使用一些不依賴於 Win32 命名空間的方法,我們已在下面對此進行了解釋。
使用長設備通過命令提示符刪除或重命名路徑
解決此問題的最簡單方法是在刪除文件時根據通用命名約定使用文件/文件夾的長設備路徑。該路徑在絕對路徑之前使用 \\?\ 語法路徑。
每個文件或文件夾都包含一個路徑,可幫助確定文件/文件夾的確切位置。例如,Windows 內的文件夾System32 >C盤的目錄有一個絕對路徑C:\Windows\System32,而它的長設備路徑實際上是\\?\C:\Windows\System32
這種類型of path 會忽略路徑名中的任何無效字符,因此您可以安全地使用它來刪除或重命名顯示上述錯誤的文件。為此,您必須使用命令提示符等命令行界面,並使用長設備路徑和相應的命令。
注意:如果您想要將文件/文件夾移動或複製到某處,最好先使用此方法重命名。然後,您可以將其移動/複製到任何您想要的位置。
按 Windows 鍵 + R 打開“運行”。鍵入 cmd 並按 Enter 鍵打開命令提示符。如果顯示此錯誤的文件或文件夾位於系統目錄內(通常位於 Program Files 或 Windows 或其他用戶文件內),則需要鍵入 cmd 並按 Ctrl + Shift + Enter 打開提升的命令提示符相反。根據您是否要刪除或重命名文件,使用以下命令。要刪除文件,請輸入 del”\\?\<文件的完整路徑>“並按 Enter 鍵。
例如,如果您要刪除文件“random.txt”,請按 Enter 鍵。 txt”(注意尾部空格)在D:\New文件夾內,需要使用命令 del “\\?\D:\New\random.txt” 至 <強>刪除文件夾,輸入 rd”\\?\<文件夾的完整路徑>“或 rmdir”\\?\<文件夾的完整路徑>“並按 Enter。
所以,如果文件夾為“D:\New\Error”(尾部有空格),需要使用命令 rd “\\?\D:\New\Error”到重命名文件,輸入 ren “\\?\<文件的完整路徑>““<新文件名>,然後按 Enter。
例如,如果文件是“D:\New \random.txt”,使用命令 ren “\\?\D:\New\random.txt” “random.txt” 您無法重命名文件夾這樣。因此,您需要將其內容移動到新文件夾,然後刪除該文件夾。 “D:\New\Error”的命令如下
md “D:\New\Error”(不帶尾部空格)
move “\\?\D:\新\錯誤 \*”“D:\新\錯誤”
rd “\\?\D:\新\錯誤”
如果收到錯誤“文件名、目錄名或卷標語法不正確。”使用移動命令時,意味著該文件夾是空的,您可以安全地刪除它。
使用 Robocopy 鏡像空文件夾
也可以通過以下方式強制刪除錯誤文件或文件夾來解決此問題:
使其成為其內部的唯一文件或文件夾父文件夾。將空文件夾鏡像到此文件夾。
您可以使用帶有/mir 選項的 robocopy 命令來鏡像空文件夾。
但是,請記住,您只能使用此方法刪除文件夾或文件。如果您需要重命名(或移動/複製),最好改用上述方法。
首先,將包含錯誤的文件夾或文件的目錄中的所有其他內容移動到其他位置。例如,如果錯誤發生在 D:\New 內的“random.txt”中,請將除“random.txt”之外的所有其他文件和文件夾移動到其他位置。這樣,“random.txt”是 D:\New 中的唯一項目。然後,在任意位置創建一個空文件夾。在本例中,我在 D: 中創建了文件夾“空文件夾”。打開命令提示符(運行中的 cmd)。輸入 robocopy “空文件夾路徑” “錯誤文件/文件夾的父文件夾的路徑”/mir 並按 Enter。在本例中,命令為 robocopy “D:\Empty Folder” “D:\New”/mir 移回之前的內容父目錄。