2007/05/29(火)cygwinがらみの削除できないファイル
2007/05/29 17:53
起動ドライブ変更後に旧ドライブのcygwinフォルダが消せなくなった。どうやら、.lnkファイルで引っかかっているようだ。
消そうとすると、
「ファイルまたはフォルダの削除エラー」ダイアログが表示され、
hogehogeを削除できません。アクセスできません。
ディスクがいっぱいでないか、書き込み禁止になっていないか、
またはファイルが使用中でないか確認してください。
というメッセージが表示される。
さて、原因はよくわからなかったが対処方法は発見した。
リンクがあるフォルダのプロパティを開き、セキュリティタブから、
詳細設定->所有者->所有者の変更->サブコンテナとオブジェクトの所有者を置き換えるにチェック->OK->OKで一度プロパティを閉じる。
もう一度、セキュリティタブから、
(*)詳細設定->アクセス許可->「子オブジェクトに適用するアクセス許可エントリを親から継承し、それらをここで明示的に定義されているものに含める」のチェックを「外す」->ダイアログが出たら「コピー」を選択
詳細設定->アクセス許可->「子オブジェクトすべてのアクセス許可エントリを、ここに表示されているエントリで子オブジェクトに適用するもで置換する」にチェック
- >適用->OK->OKでプロパティを閉じる
これでフォルダ側にアクセス権を持っていれば、このショートカットも削除できるようになる。
セキュリティタブがない場合は、
エクスプローラ->フォルダオプション->簡易ファイルの共有を使用するのチェックを外す。
なお上記すべてWinXP Proの場合。
うーんWindowsのショートカットの実装がどうなってるかなんて考えたことなかった。相対リンクじゃないときにドライブレターが変わったところで、アクセスできないなんて馬鹿な話はないだろうし、となるとcygwinが結構特殊な方法でlnkを作ってるんじゃないだろうか。あるいは私が所有権やWindows Administratorのファイル管理権限についてあまり理解してないのか。
それにしてもオプション項目の日本語が細かいとこにいくにつれおかしくなってくるなあ。
(*)このステップは不要かも