在 Appdata 文件夹中创建文本文件时出现异常,它说文件正在被另一个进程使用
Posted
技术标签:
【中文标题】在 Appdata 文件夹中创建文本文件时出现异常,它说文件正在被另一个进程使用【英文标题】:Getting exception while Creation a text file in Appdata folder, its saying File it is being used by another process 【发布时间】:2014-12-05 07:31:57 【问题描述】:我正在 Appdata 文件夹中写入一个文本文件,我正在创建一个文件夹并创建一个文本文件,在下一行中,我正在通过 StreamWriter 将文本写入文件。但是在这里我遇到了以下异常。
该进程无法访问文件 'C:\sdfdfg\sdfsd\AppData\Roaming\MyFolder\myFile.txt',因为它正被另一个进程使用。
我在创建文件时遇到这个异常,如果我第二次运行应用程序而不是应用程序将文本写入同一个文件。
我的代码如下
StringBuilder sb=new StringBuilder();
if (!File.Exists(filePath))
File.Create(filePath);
sb.AppendLine(line);
using (StreamWriter writer = new StreamWriter(filePath, true))
writer.Write(sb.ToString());
writer.Close();
我尝试了 File 的另一个函数 File.WriteAllText(filePath, textToWrite);但它的执行方式也与上面 StreamWriter 的行为方式相同。
【问题讨论】:
【参考方案1】:最简单的解决方案是忽略File.Create()
。
The constructor you're using for your StreamWriter 会在文件不存在时创建它。
另一种选择是将File.Create()
返回的FileStream
传递给StreamWriter
的适当构造函数。
【讨论】:
谢谢你现在我已经删除了 File.Create(filePath); StreamWriter 将写入文件。,我犯了一个如此愚蠢的错误...... :(,无论如何谢谢你 Willem van Rumpt。干杯!以上是关于在 Appdata 文件夹中创建文本文件时出现异常,它说文件正在被另一个进程使用的主要内容,如果未能解决你的问题,请参考以下文章
当我尝试在 /Library/Application Support/ 中创建文件夹“efiLinq”时出现权限被拒绝错误
错误 C2059:尝试在已知大小的头文件中创建 Qt 容器时出现“常量”