フォルダ書込み時の排他処理 への返答

投稿で使用できる特殊コードの説明。(別タブで開きます。)
本名は入力しないようにしましょう。
投稿した後で削除するときに使うパスワードです。返答があった後は削除できません。
返答する人が目安にします。相手が小学生か社会人かで返答の仕方も変わります。
最初の投稿が質問の場合、質問者が解決時にチェックしてください。(以降も追加書き込み・返信は可能です。)
※「過去ログ」について書くときはその過去ログのURLも書いてください。

以下の返答は逆順(新しい順)に並んでいます。

投稿者 るきお  (社会人) 投稿日時 2022/7/19 18:14:32
>複数のソフトでネットワーク上の同じ共有フォルダへファイルをコピーする作業があります。
つまり、VBで作成した同じプログラムを複数のマシンで実行して、それぞれが同じフォルダーにファイルをコピーする機能が実行するということであっていますか?


>他のソフトがその共有フォルダへコピーしようとした場合にその作業が終わるまで処理を行わせない排他制御などあれば教えて頂けますでしょうか?
ファイル名も異なるということでしょうか?
たとえば、そのフォルダーが Z:\shared だったとして、
あるマシンで実行しているプログラムではそこに a.csv をコピーします。別のマシンで実行しているプログラムではそこに b.csv をコピーします。と、こういうことですか?
そして、a.csvのコピーが終わるまで、b.csvをコピーさせないように排他制御したいと?

この通りだとするなら、今まで私が聞いたことがない仕様ですね。機能的にもできないように思います。一応、その対象のフォルダーを先にコピーする方がリネームしてしまうという手はあると思います。そして、コピーが終わったらもとのフォルダー名を戻すという感じです。でも決してお勧めではありません。エラー終了した時の処理が面倒そうですし。

何か事情があるのだとは思いますが、設計を変更することを考えられることをお勧めします。
つまり、同時にコピーしてはいけないという何かの事情の方を変更するということです。

投稿者 rand  (社会人) 投稿日時 2022/7/19 08:57:58
VB.NETについて質問します。複数のソフトでネットワーク上の同じ共有フォルダへファイルをコピーする作業があります。(My.Computer.FileSystem.CopyDirectory で、あるファイルをその共有フォルダへ手動でコピーします。)このとき、ある1つのソフトがコピーしている最中に、他のソフトがその共有フォルダへコピーしようとした場合にその作業が終わるまで処理を行わせない排他制御などあれば教えて頂けますでしょうか?