秀丸エディタの排他制御についてNo.32417
Yoshi0815 さん 13/07/15 21:01
 
ファイルの排他制御を「しない」に設定することによって
開いているファイルをエクスプローラ等で削除することが
できますが、開いているファイルが格納されているディレクトリは
秀丸エディタが掴んでいて削除できません。

ファイルの排他制御と同じように、ディレクトリも削除できる設定は
ありますでしょうか?

[ ]
RE:32417 秀丸エディタの排他制御についてNo.32423
秀丸担当 さん 13/07/16 11:38
 

確かに秀丸エディタは現在のフォルダをファイルのあるフォルダに指定している
ため、フォルダの削除は使用中のため削除できないということになってしまいま
す。
この挙動を変える設定はすみませんが現状では無いです。

「ファイルを閉じる」(標準でCtrl+F4)というコマンドがありますが、これで
ファイルを閉じても現在のフォルダはそのままで、次に「開く」をしても同じフ
ォルダから開くようになっていて、ファイルを閉じた直後でも同じく削除はでき
ないです。

----

参考までの情報として、現状でなんとかするとしたら、マクロで「ファイルを閉
じる」相当のことをして、さらに現在のフォルダをC:\にするといったような方
法が考えられますが、どうでしょうか。

マクロの例:
closenew;
if( basename==""){
  changename "c:\\";
  clearupdated;
}

[ ]
RE:32423 秀丸エディタの排他制御についてNo.32425
Yoshi0815 さん 13/07/16 14:04
 
ご回答ありがとうございます。

具体的にどのような不都合が生じているかをお伝えさせていただきます。

タブモードで常時いくつかのテキストファイルを開いています。
また、テキストデータの作業用に新規作成の (無題) となっているタブを複数
開く使い方をしています。

zip等の書庫内のファイルを一時的なディレクトリ内に解凍し、その中のテキスト
ファイルを秀丸エディタで開きます。その後、作業用に新規のタブをいくつか
開きます。
解凍したファイルが不要になったので、一時的なディレクトリを削除しようと
すると何かがロックしていて削除できません。ロックしているソフトを特定すると
秀丸エディタと出ます。
なので、開いた状態のテキストファイルを閉じて再度ディレクトリを削除しよう
としても、作業用の (無題) のタブが掴んでいるようで、削除できません。

このようなことが、たびたび発生しています。

ご回答いただいたマクロを改良して、全ての新規タブの「現在のフォルダ」を
C:\ に変更すると、現状の不都合はいくらか軽減されるような気はします。

ただ、不要なディレクトリが削除できない時点で、開いている一時的なディレクトリ
内のファイルを閉じ、マクロを実行し、再度削除する手順になってしまうので、
可能であれば、排他制御をしない設定では、ディレクトリもロックしないように
変更することをご検討いただけると助かります。

[ ]
RE:32425 秀丸エディタの排他制御についてNo.32429
秀丸担当 さん 13/07/16 17:05
 

作業用のフォルダから新規作成した場合については、最初のフォルダの設定をし
ておくといいと思います。

[その他]→[動作環境]→[ファイル]で、「最初のフォルダ」をONにして、ここを
「C:\」などを指定しておくと、作業用のフォルダから新規作成した場合にも適
用されます。

この設定は「開く」をしたときの初期フォルダのための設定ですが、「開く」は
現在のフォルダを基準にして初期フォルダが決まるため、ここの設定を変えるこ
とで初期フォルダが変わることになります。

ディレクトリのロックというのはファイルの排他制御のようにロックする/しな
いをファイルシステムに対して指示しているというわけではなく、ただ現在のフ
ォルダ(カレントディレクトリ)がこのフォルダになっているだけになっていま
す。
たとえばコマンドプロンプトでcd c:\folder でカレントディレクトリを移動す
ると、そこが削除できないのと同じ理由になると思います。

変更するとしたら、カレントディレクトリを使わないように内部構造を変えると
いうことが大変ということもありますが、各種拡張ソフトなどに影響も出かねな
いので慎重に考える必要がありそうで、簡単にはいかなさそうです。

[ ]
RE:32429 秀丸エディタの排他制御についてNo.32430
Yoshi0815 さん 13/07/16 18:25
 
「現在のフォルダ」はカレントディレクトリのことだったんですね。
開いたファイルの親ディレクトリにカレントを移動する仕様なんですね。

カレントディレクトリは起動時の場所で固定で、次にダイアログを
開く時の基準等として用いるために退避した値が「現在のフォルダ」
と思い込んでいました。

排他制御をしない場合に親ディレクトリをロックする必要がなさそう
なのでお願いしましたが、カレントディレクトリの仕様変更となると
さすがにお願いできないですね。

お教えいただいた「最初のフォルダ」の設定で対処します。

ありがとうございました。

[ ]