パスが深すぎて削除できない場合の対処法
Windows環境でパスが深すぎるファイルやフォルダがあると、それを削除しようとすると「ファイルを削除できません」というエラーになります。
こういう場合の対処法ですが、エクスプローラから見えるパスを短くすればいいわけです。

そのためには、ネットワークドライブが有用です。

問題のフォルダの上位のフォルダをネットワーク共有させ、そのUNCパスをネットワークドライブとしてマウントします。
そうすると、パスは必然的に短くなるためWindowsAPIからアクセス可能になり削除できます。


ちなみに、Windows環境での最大パス長(MAX_PATH)は260文字です。
(260はNULL文字やドライブレターを含んだ上他になるので、実際のディレクトリエントリの最大文字列長は255です)

参考:
MAX_PATH はこういう理由で260
WeBlog of Sky color MAX_PATHってつまり…? (デバイス予約文字がファイル名に使えないのは知らなかった。。。)

追記:
コメントで指摘しもらったように、ネットワークドライブを張る以外にも方法があるようです。
ひとつは深いフォルダをルートに移動させてから操作する方法です。(パスが深くて削除できなくても移動はできるようです)

もう一つがsubstコマンドを使う方法です。今まで知らなかったんですが、このコマンドでは任意のパスをドライブ名に割り当てることができるようです。
例えば以下のようにすると、z: に c:\xxx\xxx\xxx\フォルダが割り当てることができます。ネットワークドライブのローカル版みたいな感じでしょうか。

subst z: c:\xxx\xxx\xxx\フ\

なお解除するには以下のようにします。

subst z: /d

ディスクの管理からは特定のボリュームを空のフォルダにマウントできましたが、これは逆ですね。

ご指摘に感謝します。
[PR]
by Jehoshaphat | 2012-12-05 00:38 | 豆知識 | Trackback | Comments(3)
トラックバックURL : http://jehupc.exblog.jp/tb/19307292
トラックバックする(会員専用) [ヘルプ]
※このブログはトラックバック承認制を適用しています。 ブログの持ち主が承認するまでトラックバックは表示されません。
Commented by at 2012-12-05 08:47 x
パスの長さが長くても、移動は可能なので、ルートなどに移動してから、削除する手もあります。
Commented by tt at 2012-12-05 10:20 x
ネットワークに出さなくても
subst
http://itpro.nikkeibp.co.jp/free/NT/WinKeyWord/20040805/1/subst.shtml
でドライブレター割り当てれば良いのでは?
Commented by Jehoshaphat at 2013-01-04 00:39
3流PGです。ご指摘ありがとうございます。本文に追記しました。


<< Windows端末で時刻同期を... FlashPlayer11.5... >>