フォルダーを監視するファイルウォッチャー プログラムを開発しました。ファイルに変更があれば、ファイルを別のフォルダーにコピーします。
しかし、元のファイルを書き込むときにエラー メッセージが表示されることがわかりました (例: file being prcoess by another application...) 別のフォルダーにコピーする [System.IO.File.Copy] を実行すると、ファイルがロックされたようです。
filewatcher/System.IO.File.Copy によってロックされた元のファイルを回避できるソリューションはありますか? ありがとう。
以下は私のコードです:
private void fileWatcher_Changed(object sender, System.IO.FileSystemEventArgs e)
{
DateTime lastWriteTime = File.GetLastWriteTime(e.FullPath);
if (lastWriteTime != lastRead)
{
txtLog.Text += e.ChangeType + ": " + e.FullPath + "\r\n";
txtLog.Focus();
txtLog.Select(txtLog.TextLength, 0);
txtLog.ScrollToCaret();
try
{
string myPath = e.FullPath;
string myFile = e.Name;
System.IO.FileInfo myFileInfo = new System.IO.FileInfo(myFile);
string myAttibs = myFileInfo.Attributes.ToString();
System.IO.File.Copy(myPath, @"D:\\Folder\\Output\\" + myFile, true);
lastRead = lastWriteTime;
}
catch (System.IO.IOException ex)
{
System.IO.IOException myex = ex;
}
catch (System.Exception ex)
{
System.Exception myex = ex;
}
}
}