末尾にドット(.)
”AAA."
とか書いても"AAA"
に変換されてたんだが、プログラム上では誤ってできてしまうことがある。そんなファイルの消し方は、フォルダ名をUNCの書き方で先頭に"\\?\"
をつけてフルパスで書いてやればそのファイルにアクセスできる。UNC記法はWindowsネットワークでのリソースアクセスのため拡張されたパス名の書き方で、そのうちの機能の一つとして先頭に"\\?\"
をつけるとWindows内部のすべての文字列解析を無効にし、それに続く文字列をファイルシステムに直接送信するようにWindows APIに指示するらしい。つまり".."
とかの相対パスとかは使えなくなるけど、よけいなことはしなくなる。例えばそんなフォルダを消すにはコマンドラインから
rd "\\?\c:\users\hogehoge\Desktop\folder."