C# 读取被占用文件
时间: 2023-07-27 15:27:04 浏览: 173
如果一个文件被其他进程占用,C#程序默认情况下是无法读取该文件的。但是,你可以使用FileShare枚举来打开一个共享访问的流,以便其他进程也可以访问该文件。
以下是一个读取被占用文件的示例代码:
```csharp
using System;
using System.IO;
class Program
{
static void Main(string[] args)
{
string filePath = "C:\\temp\\myfile.txt";
try
{
using (FileStream fileStream = new FileStream(filePath, FileMode.Open, FileAccess.Read, FileShare.ReadWrite))
{
using (StreamReader reader = new StreamReader(fileStream))
{
string line;
while ((line = reader.ReadLine()) != null)
{
Console.WriteLine(line);
}
}
}
}
catch (Exception e)
{
Console.WriteLine("An error occurred: " + e.Message);
}
}
}
```
在上面的示例代码中,我们使用了FileStream类打开了一个名为"myfile.txt"的文件,并指定了FileShare.ReadWrite枚举以允许其他进程以只读或读写模式访问该文件。然后,我们使用StreamReader类读取文件的每一行,并将其输出到控制台。
需要注意的是,如果其他进程正在写入该文件,你可能无法读取最新的数据。此外,如果你尝试在打开文件的过程中删除该文件,将会抛出一个IOException异常。因此,你应该始终在读取文件之前检查文件是否存在,并且在读取完成后关闭文件流。
阅读全文