web-dev-qa-db-ja.com

Windowsは._を削除できません。ファイル

現在、外付けハードドライブのルートに._.という名前のファイルがあります。これは、少し前にMacBookで使用した後、ハードドライブに追加されたと推測されます。 Windows 10マシンでこのファイルを削除しようとしています。ただし、Windowsはファイルが見つからないと主張し続けます。

Error message from Windows Explorer

また、管理者特権のコマンドプロンプトを使用してファイルを削除しようとしました。ただし、同じメッセージが返されます。

Error message from elevated command Prompt

Windowsを介してハードドライブからこのファイルを削除する方法はありますか?

91
Mike Koch

次のコマンドを実行します(管理者特権が必要な場合があります/管理者としてコマンドプロンプトを開く):

del "\\?\F:\._."

\\?\接頭辞について

ファイルI/Oの場合、パス文字列の接頭辞「\\?\」は、すべての文字列解析を無効にし、それに続く文字列をファイルシステムに直接送信するようにWindows APIに指示します。

...

パス文字列の自動展開をオフにするため、「\\?\」プレフィックスでは、パス名に「..」と「.」を使用することもできます。これは、完全修飾パスの一部として他の方法で予約された相対パス指定子を使用して、ファイルに対して操作を実行しようとしています。

相対パスで "\\?\"接​​頭辞を使用できないことに注意してください。

==> set prog>"\\?\D:\bat\Unusual Names\._."

==> dir "D:\bat\Unusual Names\*"|find "._."
08.11.2015  13:25               132 ._.

==> type "D:\bat\Unusual Names\._."
The system cannot find the file specified.

==> type "\\?\D:\bat\Unusual Names\._."
ProgramData=C:\ProgramData
ProgramFiles=C:\Program Files
ProgramFiles(x86)=C:\Program Files (x86)
ProgramW6432=C:\Program Files

==> del "D:\bat\Unusual Names\._."
Could Not Find D:\bat\Unusual Names\._.

==> del "\\?\D:\bat\Unusual Names\._."

==> dir "D:\bat\Unusual Names\*"|find "._."

==>
146
JosefZ

質問はすでに回答されていますが、可能な代替ソリューションを提供したいと思います。従来の「ショートネーム」(dirコマンドの「/ x」オプションで表示できます)を使用すると、次のこともできます。他の方法では処理できない「ファンキー」な名前のファイルを把握します。

C:\temp\test>dir
 Volume in drive C has no label.
 Volume Serial Number is 887A-5E48

 Directory of C:\temp\test

11.11.2015  16:31    <DIR>          .
11.11.2015  16:31    <DIR>          ..
11.11.2015  16:31                 7 ._.
               1 File(s)              7 bytes
               2 Dir(s)  44.966.129.664 bytes free

C:\temp\test>dir /x
 Volume in drive C has no label.
 Volume Serial Number is 887A-5E48

 Directory of C:\temp\test

11.11.2015  16:31    <DIR>                       .
11.11.2015  16:31    <DIR>                       ..
11.11.2015  16:31                 7 _3E35~1      ._.
               1 File(s)              7 bytes
               2 Dir(s)  44.966.129.664 bytes free

C:\temp\test>del _3e35~1

C:\temp\test>dir
 Volume in drive C has no label.
 Volume Serial Number is 887A-5E48

 Directory of C:\temp\test

11.11.2015  16:31    <DIR>          .
11.11.2015  16:31    <DIR>          ..
               0 File(s)              0 bytes
               2 Dir(s)  44.966.129.664 bytes free
24
Guest

インストール 7-Zip 、それを開き、そのファイルメニューを使用してファイルの名前を通常の名前(たとえばaaa)に変更してから、削除できます。 this の投稿にあります。

これをWindowsでテストしましたXP VMで実行しています。Linuxを使用して、共有ディレクトリに._.というファイルを作成しました。

21
NZD