c# 判断文件是否正在被另一个进程使用

引言

我在做一个读取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.

你可能感兴趣的:(c#基础)