Language/C#
File Write 시에 모니터링 및 끝나면 다음 동작 수행
RAY.D
2015. 11. 11. 17:08
파일에 Write 작업을 할때
그 Write 가 다 끝난 다음에 다음 동작을 수행하는 기법
파일에 Write가 될때는 Lock되는 성질을 이용하여 구현한다.
void AwaitFile()
{
//Your File
var file = new FileInfo("yourFile");
//While File is not accesable because of writing process
while (IsFileLocked(file)) { }
//File is available here
}
/// <summary>
/// Code by ChrisW -> http://stackoverflow.com/questions/876473/is-there-a-way-to-check-if-a-file-is-in-use
/// </summary>
protected virtual bool IsFileLocked(FileInfo file)
{
FileStream stream = null;
try
{
stream = file.Open(FileMode.Open, FileAccess.ReadWrite, FileShare.None);
}
catch (IOException)
{
return true;
}
finally
{
if (stream != null)
stream.Close();
}
//file is not locked
return false;
}