System.IO.IOException: '该进程无法访问该文件,因为它正被另一个进程使用

Posted

技术标签:

【中文标题】System.IO.IOException: \'该进程无法访问该文件,因为它正被另一个进程使用【英文标题】:System.IO.IOException: 'The process cannot access the file because it is being used by another processSystem.IO.IOException: '该进程无法访问该文件,因为它正被另一个进程使用 【发布时间】:2020-07-14 10:37:41 【问题描述】:

我正在尝试保存我的 txt 文件,但是当我得到标题中的错误时?如果我使用 .CreateNew 我没有收到错误,但我想保存到我拥有的现有文件中?

        private void OpenFile_MouseDown(object sender, MouseEventArgs e)
        
            Stream myStream;
            if (openFileDialog.ShowDialog() == DialogResult.OK) 
            
               if ((myStream = openFileDialog.OpenFile()) != null)
                
                    string strfilename = openFileDialog.FileName;
                    string filetext = File.ReadAllText(strfilename);
                    richTextBox.Text = filetext;

                
            
        

        private void savefile_MouseDown(object sender, MouseEventArgs e)
        
            
            SaveFileDialog saveFileDialog = new SaveFileDialog();
            if (saveFileDialog.ShowDialog() == DialogResult.OK)
                using (Stream s = File.Open(saveFileDialog.FileName, FileMode.Append))
                using (StreamWriter sw = new StreamWriter(s))
                
                    sw.Write(richTextBox.Text);
                

        

【问题讨论】:

使用ProcExp.exe(或ProcExp64.exe)找出其他进程锁定了您的文件。 【参考方案1】:

您应该处置myStream 变量。这就是您收到该错误的原因。

【讨论】:

以上是关于System.IO.IOException: '该进程无法访问该文件,因为它正被另一个进程使用的主要内容,如果未能解决你的问题,请参考以下文章

ZipFile.CreateFromDirectory 抛出 System.IO.IOException :该进程无法访问文件 X,因为它正在被另一个进程使用

在没有ToList()的情况下运行时,在Linq的SelectMany()中读取文件会抛出System.IO.IOException

System.IO.IOException:由于意外 > 数据包格式,握手失败?

System.IO.IOException:“找不到资源“window1.xaml”。” 解决方法

System.IO.IOException:共享路径冲突

从 Git 本地部署到 Azure System.IO.IOException: 磁盘空间不足