System.IO.FileStream fs = new System.IO.FileStream(fileName, System.IO.FileMode.Open)
这个方法打开文件的时候是以只读共享的方式打开的,但若此文件已被一个拥有写权限的进程打开的话,就无法读取了,
因此需要使用
System.IO.FileStream fs = new System.IO.FileStream(fileName, System.IO.FileMode.Open,System.IO.FileAccess.Read,FileShare.ReadWrite);
设置文件共享方式为读写,FileShare.ReadWrite。
本文实例讲述了C#实现复制文件夹中文件到另一个文件夹的方法。分享给大家供大家参考。具体如下: private void CopyDir(string srcPath, string aimPath)  // 检查目标目录是否以目录分割字符结束如果不是则添加  if (aimPath[aimPath.Length - 1] != System.IO.Path.DirectorySeparatorChar)  aimPath += System.IO.Path.DirectorySeparatorChar;  // 判断目标目录是否存在如果不存在则新建 1.调用了窗口的 hide() 方法,导致某些窗口(尤其是登录页面)被隐藏,导致关闭的时候,这个进程在最下面的任务栏里面并不显示出来,而且在任务管理器里面也不显示。(但实际上是进程存在并且没有被关闭,只是隐藏起来了),结果这样就莫名进入了调试状态。 2.自己采用的调试状态运行程序,导致不能修改代码,尽管调试状态下可以修改代码(工具--->选项--->调试,把对号去
这是由于程序要读取的文件已经被其他进程(人为或其它程序)打开,若仅需要读取,则可以设置文件共享方式为读写的,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# 读写文件文件由另一进程使用,因此该进程无法访问文件 问题描述:c# 读写文件文件由另一进程使用,因此该进程无法访问文件,在IO处理上遇到了无法操作的问题。 文件“D:\log.txt”由另一进程使用,因此该进程无法访问文件。 log.txt是一个日志文件,不定时都可能由另外的程序对它进行日志记录写入操作。 今需要对日志文件读取出来,显示在日志查询里,需要用到了IO流。 1、 FileStream fs = File.OpenRead(url); StreamReader sr = ne
1.将文件流变为共享: FileStream fs = new FileStream(path, FileMode.Open, FileAccess.Read, FileShare.ReadWrite); StreamReader sr = new StreamReader(
C#中经常会使用到OpenFileDialog控件,而使用该控件时若没有将条件设置好,很容易出现以下提示: “文件由另一进程使用,该进程无法访问文件”。 打开一个文件后,尝试重新打开一次该文件,或者打开该文件后想对该文件进行其他操作的时候,就容易出现这个错误提示,错误的原因很简单,解决方法也很简单。 一般情况下造成该错误的原因是构造System.IO.FileStream时参数设
二、解决办法:用共享文件即可 用以下代码替换strStartMain = File.ReadAllText(strPathTxt, Encoding.Default);即可。 FileStream fs = new FileStream(strPathTxt, FileMode.Open, FileAccess.Rea... OpenFileDialog open_file = new OpenFileDialog(); open_file.Filter = "bat files (*.bat)|*.bat|All files (*.*)|*.*"; open_file.RestoreDir string currentPath = Directory.GetCurrentDirectory(); //获取文件名 string fileName = "example.txt"; //获取进程名 string processName = Path.GetFileNameWithoutExtension(fileName); //获取所有同名进程 Process[] processes = Process.GetProcessesByName(processName); //遍历进程 foreach (Process process in processes) //获取进程文件路径 string processPath = process.MainModule.FileName; //判断路径是否为当前路径下的文件 if (processPath.StartsWith(currentPath) && processPath.EndsWith(fileName)) //关闭进程 process.Kill(); catch (Exception ex) //处理异常 Console.WriteLine(ex.Message); 这段代码会获取当前路径下的文件名和进程名,然后使用 `GetProcessesByName()` 方法获取同名的所有进程。接着遍历这些进程,获取进程文件路径,判断路径是否为当前路径下的文件,如果是则使用 `Kill()` 方法关闭进程。注意,这种关闭进程的方式也比较暴力,可能会导致数据丢失或其他问题,所以在使用之前要谨慎考虑。