tagCANDY CGI VBレスキュー(花ちゃん)の Visual Basic 6.0用 掲示板 [ツリー表示へ]   [Home]
一括表示(VB6.0)
タイトルフォルダを削除させない
記事No14776
投稿日: 2010/06/25(Fri) 15:51
投稿者レット
ネットワークに共有フォルダがあり階層下されていて、いずれのファイルも読み書きが出来る様にしています。
この状態で、誤操作によりフォルダが移動、削除されない様にしたいのです。

各フォルダにa.txtというダミーファイルを設けて、このファイルを開きっぱなしにして実現しようとしています。

パソコンpc1のtmpフォルダが今日されていて、その下にfol1フォルダがあります。
ここには、a.txtを先頭に、他のファイル、フォルダがあります。

以下のプログラムをpc1または、pc2で実行してメッセージを表示している状態で、
クライアントのパソコン、pc3からfol1フォルダ毎、削除、移動を行って試してみました。
WindowsXPでは、ファイルが使用中でうまくロックされました。
Windows7のクライアントパソコンpc4から実行すると、a.txt以外のファイルは全て削除されました。
削除させない方法があるでしょうか?

        Open "\\pc1\tmp\fol1\a.txt" For Append As #n
            MsgBox "メッセージ"        
      書込処理
        Close #n

全く違った方法でもかまいませんので宜しくお願い致します。
フリーソフト等色々探しましたが、削除されてしまった事を知る物はありましたが、削除させない物がありません。
結局やりたいのは、誤操作により、共有のフォルダ毎、移動とか削除をさせないと言う事です。
ファイルは読み書き自由なので仕方有りません。従ってフォルダに入って全てを選択して削除を実行した場合は仕方有りません。
またVB2008も利用可能ですので、そちらであれば教えて下さい。        

[ツリー表示へ]
タイトルRe: フォルダを削除させない
記事No14777
投稿日: 2010/06/25(Fri) 17:25
投稿者花ちゃん
> この状態で、誤操作によりフォルダが移動、削除されない様にしたいのです。

ご操作か正規の操作かどうかはどのようにして判断するのですか?
間違って削除なりをしてからでないとご操作かどうかを言えないのではないでしょうか?

バックアップでも取って置いてから、ファイルやフォルダーを監視して
削除や変更された時、間違いかどうかを問い合わせでもしない限りそのような事
できないのではないでしょうか?(正規の操作まで制限される事になりませんか)
その直後なら、元に戻す処理をすれば、元の状態に戻せるし。

フォルダ だけに限定するなら下記のようにしたのではだめですか?
Private Sub Command1_Click()
   ChDir "c:\pc1\tmp\fol1"
End Sub

[ツリー表示へ]
タイトルRe^2: フォルダを削除させない
記事No14778
投稿日: 2010/06/25(Fri) 19:40
投稿者ハツ
何らかのプログラム内で、フォルダの削除を完全に規制するなら、
削除対象にフォルダの存在チェックを行って、存在したらキャンセル、
で実現できそうな気がします。

シェルからの全般的な誤操作、というのであれば、
それはプログラムではなくファイルのアクセス権で設定するべき問題でしょう。
例えば、Linux系であればchmodや、sambaの設定をしたり、
WindowsのPro系なら、アクセス許可から、
サブフォルダとファイルの削除を不許可にすればいいかと。

[ツリー表示へ]
タイトルRe^2: フォルダを削除させない
記事No14779
投稿日: 2010/06/25(Fri) 20:15
投稿者レット
誤操作と言うのは、
プログラムとは何ら関係ない話です。ネットワークの共有フォルダをエクスプローラーで開いて、ファイルを見ている時に、マウス操作で間違ってフォルダ毎移動してしまう人がいます。この様に意図しない操作でフォルダ毎の移動、削除を防ごうと考えています。
20032srverなのですが、ファイルを読み書き可能とすると、フォルダの削除を不可とする事がフォルダのセキュリティ設定とかでは出来ないみたいなのです。
仕方がないので、フォルダを移動、削除するときに、aのファイルから見に行って、駄目ならどのファイルも処理出来なくなる。と言うのがWinxpの処理みたいです。
ところが先に書いた用にWin7ではこの処理順番が異なるみたいなのです。

[ツリー表示へ]
タイトルRe^3: フォルダを削除させない
記事No14780
投稿日: 2010/06/26(Sat) 07:43
投稿者花ちゃん
> 誤操作と言うのは、
> プログラムとは何ら関係ない話です。ネットワークの共有フォルダをエクスプローラーで開いて、ファイルを見ている時に、マウス操作で間違ってフォルダ毎移動してしまう人がいます。この様に意図しない操作でフォルダ毎の移動、削除を防ごうと考えています。

日本語って、プログラムと同様に相手に伝えるのは結構難しいですよ。
誤操作防止 と 削除や移動防止(禁止) とは全く別の事だと私は理解しているのですが
どちらがやりたいかを確認しているのです。

それで、誤操作防止なら、No.14777 のような方法しかないかと。

ChDir "\\pc1\tmp\fol1" でフォルダを掴んでいたのではだめだったのでしょうか?
http://blog.livedoor.jp/lakeside_shinnosuke/archives/801137.html のような現象を
逆利用する。

削除や移動防止(禁止) なら、フォルダーにパスワード等かけてロックする等しないと、
但し、使用する場合それなりの制限を受けたりしますので、自由に読み書きすると
言う訳にはいかないかと。
下記は、たしかVB6.0 製だったかと。
http://www008.upp.so-net.ne.jp/ikaia/pfs/rireki.htm
仮に削除不可等の設定をしても、エクスプローラ等から解除できれば、だめな訳だし。

[ツリー表示へ]