文件“D:\log.txt”正由另一进程使用,因此该进程无法访问该文件。

log.txt是一个日志文件,不定时都可能由另外的程序对它进行日志记录写入操作。

今需要对日志文件读取出来,显示在日志查询里,需要用到了IO流。

1、 FileStream fs = File.OpenRead(url);
StreamReader sr = new StreamReader((System.IO.Stream)fs, System.Text.Encoding.Default);

错误提示:文件“D:\Log\Cargoabc\logfilecargoabc.txt”正由另一进程使用,因此该进程无法访问该文件。

2、StreamReader sr = File.OpenText(url);

错误提示:错误提示:文件“D:\Log\Cargoabc\logfilecargoabc.txt”正由另一进程使用,因此该进程无法访问该文件。

3、 FileStream fs = new FileStream(url, FileMode.Open, FileAccess.Read, FileShare.ReadWrite);
StreamReader sr = new StreamReader(fs, System.Text.Encoding.Default);

正确读取。

这样的情况,不单要与只读方式打开txt文件,而且,需要共享锁。还必须要选择flieShare方式为ReadWrite。因为随时有其他程序对其进行写操作。

原文链接 https://blog.csdn.net/superhoy/article/details/7931234

c# 读写文件时文件正由另一进程使用,因此该进程无法访问该文件问题描述:c# 读写文件时文件正由另一进程使用,因此该进程无法访问该文件,在IO处理上遇到了无法操作的问题。文件“D:\log.txt”正由另一进程使用,因此该进程无法访问该文件。log.txt是一个日志文件,不定时都可能由另外的程序对它进行日志记录写入操作。今需要对日志文件读取出来,显示在日志查询里,需要用到了IO流。1、 FileStream fs = File.OpenRead(url);StreamReader sr = ne
这是由于程序要读取的 文件 已经被其他 进程 (人为或其它程序)打开,若仅需要读取,则可以设置 文件 共享方式为 读写 的,FileShare.ReadWrite,如下方式: System.IO.FileStream fs = new System.IO.FileStream(fileName, System.IO.FileMode.Open,System.IO.FileAccess.Read,FileShare.ReadWrite); 注意:System.IO.FileMode.Open,System.IO.FileAc
C# 中经常会 使用 到OpenFileDialog控件,而 使用 该控件 若没有将条件设置好,很容易出现以下提示: “ 文件 正由 另一 进程 使用 ,该 进程 无法访问 文件 ”。 打开一个 文件 后,尝试重新打开一次该 文件 ,或者打开该 文件 后想对该 文件 进行其他操作的 候,就容易出现这个错误提示,错误的原因很简单,解决方法也很简单。 一般情况下造成该错误的原因是构造System.IO.FileStream 参数设
1.调用了窗口的 hide() 方法,导致某些窗口(尤其是登录页面)被隐藏,导致关闭的 候,这个 进程 在最下面的任务栏里面并不显示出来,而且在任务管理器里面也不显示。(但实际上是 进程 存在并且没有被关闭,只是隐藏起来了),结果这样就莫名进入了调试状态。 2.自己采用的调试状态运行程序,导致不能修改代码,尽管调试状态下可以修改代码(工具--->选项--->调试,把对号去
开发过程中,我们往往需要大量与 文件 交互,读 文件 ,写 文件 已成家常便饭,本地运行完美,但一上到投产环境,往往会出现很多令人措手不及的意外,或开发中的烦恼,因此,我对普通的 C# 文件 操作做了一次总结,问题大部分如下: 1:写入一些内容到某个 文件 中,在另一个 进程 /线程/后续操作中要读取 文件 内容的 候报异常,提示 System.IO.IOException: 文件 “XXX” 正由 另一 进程 使用 ,因此该 进程 无法访问 文件 。 2:在对一个 文件 进行一些操作后(读/写),随后想追加依然报System.IO.IOException: 文件 “XXX” 正由 另一 进程 使用 ,因此该 进程 无法访问 文件 。次问题与1相似。 3:对一个
在开发程序的过程中,难免少不了写入错误日志这个关键功能。实现这个功能,可以选择 使用 第三方日志插件,也可以选择 使用 数据库,还可以自己写个简单的方法把错误信息记录到日志 文件 。 选择最后一种方法实现的 候,若对 文件 操作与线程同步不熟悉,问题就有可能出现了,因为同一个 文件 并不允许多个线程同 写入,否则会提示“ 文件 正在由另一 进程 使用 ,因此该 进程 无法访问 文件 ”。 这是 文件 的并发写入问题,就需要用到线程同步。...
1.将 文件 流变为共享: FileStream fs = new FileStream(path, FileMode.Open, FileAccess.Read, FileShare.ReadWrite); StreamReader sr = new StreamReader(
C# 中,你可以 使用 FileStream类打开一个共享访问的流,以便其他 进程 也可以访问该 文件 。你可以指定FileShare枚举以允许其他 进程 以只读或 读写 模式访问该 文件 。 以下是一个写入共享 文件 的示例代码: ```csharp using System; using System.IO; using System.Text; class Program static void Main(string[] args) string filePath = "C:\\temp\\myfile.txt"; string data = "Hello, World!"; byte[] bytes = Encoding.UTF8.GetBytes(data); using (FileStream fileStream = new FileStream(filePath, FileMode.Append, FileAccess.Write, FileShare.ReadWrite)) fileStream.Write(bytes, 0, bytes.Length); catch (Exception e) Console.WriteLine("An error occurred: " + e.Message); 在上面的示例代码中,我们 使用 了FileStream类打开了一个名为"myfile.txt"的 文件 ,并指定了FileShare.ReadWrite枚举以允许其他 进程 以只读或 读写 模式访问该 文件 。然后,我们 使用 Write方法将数据写入到 文件 中。 需要注意的是,如果其他 进程 正在读取或写入该 文件 ,你可能无法立即访问该 文件 。此外,如果你尝试在打开 文件 的过程中删除该 文件 ,将会抛出一个IOException异常。因此,你应该始终在写入 文件 之前检查 文件 是否存在,并且在写入完成后关闭 文件 流。