访问共享文件

本文关键字:共享文件 访问 | 更新日期: 2023-09-27 18:26:49

我正试图通过Windows共享文件夹的UNC路径读取文件体,并获得此异常:The process cannot access the file '''<someIP>'logs'LogFiles'W3SVC1'u_ex141017.log' because it is being used by another process.
但是,这个文件并没有被任何进程真正锁定。我可以使用文本编辑器等从我的电脑上查看。

我用这个代码来读取文件:

var logFile = File.ReadAllText(logPath);

var logFile = (string)null;
using (var fileStream = new FileStream(logPath, FileMode.Open, FileAccess.Read, FileShare.Delete))
{
    using (var reader = new StreamReader(fileStream))
    {
        logFile = reader.ReadToEnd();
    }
}

(两者都失败)

有什么想法吗?当文件没有被任何进程真正锁定时,为什么会发生这种异常?

访问共享文件

尝试将FileShare.Delete更改为FileShare.ReadWrite。这将允许其他应用程序同时读取和写入文件。换句话说,

var logFile = (string)null;
using (var fileStream = new FileStream(logPath, FileMode.Open, FileAccess.Read, FileShare.ReadWrite))
{
    using (var reader = new StreamReader(fileStream))
    {
        logFile = reader.ReadToEnd();
    }
}