高效判断文件是否正在使用中
有个系统,我要生成一个文件,在Web上有给用户看的连接
然后用户更改后,我会重新生成这个文件
前后生成的文件名是一样的。
所以在第二次生成时就要判断这个文件是否正在被Web用户使用,如果正在使用,
生成新文件的进程就等待20秒,一直使用就连续等待10次就生成异常。
可是最近发现,文件很经常是被占用,所以经常出现异常,但是并没有Web用户下载。
判断文件是否正在使用的方法是:
FileInfo fi = new FileInfo(fileName);
if (! fi.Exists)
{
return false;
}
try
{
FileStream fs= File.Open(fileName, FileMode.Append, FileAccess.Write, FileShare.None);
fs.Close();
return false;
}
catch
{
return true;
}
请问有没有什么更好的办法来判断?
系统中还有什么服务会占用文件,来影响检测。
Index服务已经关闭。
请大家都来支持下。