削除できないディレクトリ

ConceptDrawを使ってpowerpointをmapに変換しようとしたが、Mindmanagerファイルとして出力しようとすると、ConceptDraw Mindmap自体が落ちてしまう。
これもバグのようで、特に問題なのは、Mindmanager用の出力ファイルを格納するフォルダ名の最後にスペースを入れてしまうこと。これは、例えばDropboxでもアクセスできないし、いろいろと問題のあるフォルダ名・ファイル名であると思われる。
そもそも、落ちてしまうのも、このようなフォルダ名を使っているからではないかと思う。
これを削除しようとすると、「その場所に見つかりません」というエラーメッセージが出て削除することができない。
これについては、
https://answers.microsoft.com/ja-jp/windows/forum/all/%E3%83%95%E3%82%A9%E3%83%AB%E3%83%80%E3%81%8C/5263e35a-9e2c-43b4-b306-a36d8070d7f2?tab=AllReplies#tabs
のサイトが参考になった。
特に、タブで入力する、という点が素晴らしく、実は何度か手打ちでやってみたのだが、最後にスペースが入っていることがわからず、コマンドラインから削除しようとしても同様に見つからない、というメッセージが出る始末だった。windows の削除コマンドにしろ、Dropboxの処理にしろ、末尾のスペースを除去して処理をするようにしているのだろう。というか、文字のあるところまでを読んで処理する、ということになっているのだろう。そういえば、このバグというか仕様を利用して、正規のファイル名にスペースを付けたファイル名のマルウェアを入れ、動作させる、というような攻撃手法も見たことがあるように思う。

下記は、マイクロソフト自体のヘルプページから。
https://support.microsoft.com/ja-jp/help/320081/you-cannot-delete-a-file-or-a-folder-on-an-ntfs-file-system-volume
原因 6: Win32 名前空間で無効な名前がファイル名に含まれている
ファイル名に無効な名前が含まれているファイルは削除できない場合があります (ファイル名の末尾にスペースまたはピリオドがある場合や、ファイル名がスペースのみで構成されている場合など)。 この問題を解決するには、このようなファイルを削除するのに適切な内部構文を使用するツールを使用します。 このようなファイルに対して動作するいくつかのツールでは、"\\?\" 構文を使用できます。以下に例を示します。
del "\\?\c:\path_to_file_that contains a trailing space.txt "
この問題の原因は原因 4 に似ています。 ただし、標準的な Win32 構文を使用して、名前の末尾にスペースまたはピリオドがあるファイルを開くと、実際のファイルが開く前に、末尾のスペースまたはピリオドが除去されます。 したがって、1 つのフォルダーに "AFile.txt" という名前のファイルと "AFile.txt " という名前のファイルがある場合に、標準の Win32 呼び出しを使用して "AFile.txt " を開こうとすると、"AFile.txt" が代わりに開きます。 同様に、標準の Win32 呼び出しを使用して、名前が " " (スペース文字) だけのファイルを開こうとすると、そのファイルの親フォルダーが代わりに開きます。 この状況で、これらのファイルのセキュリティ設定を変更しようとすると、これを行うことができないか、予期せず他のファイルの設定を変更する可能性があります。 この動作が発生する場合、実際には制限付き ACL があるファイルに対してアクセス許可を持っているものと考える可能性があります。