引言
我在做一個讀取excel文件批量插入數據庫的Job,遇到正在寫入的文件解析報錯:文件正在被另一個進程使用。找到一個判斷文件是否正在被使用的方法記錄一下。
public static bool IsFileInUse(string fileName)
{
var inUse = true;
if (!File.Exists(fileName)) return false;
try
{
using (var fs = new FileStream(fileName, FileMode.Open, FileAccess.Read, FileShare.None))
{
inUse = false;
}
}
catch (Exception e)
{
Console.WriteLine(e.Message.ToString());
}
return inUse;
}
總結
這裏主要通過try catch 來判斷文件流是否可以使用,可以使用inUse 返回true,否則返回false.