C#を使ってファイルを移動するプログラムを書いたのですが、移動後に短時間の間ファイルがロックされる症状が出ており、この原因を調査しています。
###該当のソースコード
C#
1using (StreamWriter sw = new StreamWriter(frompath)) 2{ 3 sw.Write("any contensts..."); 4} 5System.IO.File.Move(frompath, destpath);
destpathをポーリング監視している別のプログラムで、ごく短時間ですが、ファイルがロックされている事が検知されるケースがあります。
from,destは違うPCでネットワーク越しでのコピーになります。
私の理解では、File.CopyやFile.Moveではファイルのロックは発生しない(先にバイナリができてからFAT(MFT?)にレコードが追加される)という認識でウィルス対策ソフトなどが原因と考えているのですが、相談した知人からHDDのWrite back cacheが有効だとMoveであってもファイルがロックされるケースがあるという話や、そもそもネットワーク経由のコピーであればMoveでもロックされるのでは?という意見もあり悩んでおります。
File.MoveやFile.Copyの内部でどういった処理がされているかご教示頂けませんでしょうか?
###補足情報(言語/FW/ツール等のバージョンなど)
環境 Windows 7, 10、 .net framework 4.5

回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/08/22 23:29