一、StreamReader
直接使用StreamReader进行文件读取,读取期间会造成文件被占用
StreamReader streamReader = new StreamReader(FilePath);
streamReader.ReadLine();
二、FileStream
先打开文件流,并设置FileShare为ReadWrite,再打开StreamReader进行读取,不会造成文件被占用
FileStream fileStream= new FileStream(FilePath, FileMode.Append, FileAccess.Write, FileShare.ReadWrite);
StreamWriter streamWriter = new StreamWriter(fileStream, Encoding.UTF8);
三、File.Copy
先使用File.Copy复制文件副本,再使用StreamReader进行读取,文件复制及StreamReader读取期间均不会造成文件占用
File.Copy(sourceFilePath, destFilePath);
StreamWriter StreamWriter = new StreamWriter(destFilePath);