c#无法将文本附加到现有文件[关闭]
Posted
技术标签:
【中文标题】c#无法将文本附加到现有文件[关闭]【英文标题】:c# Can't Append text to existing file [closed] 【发布时间】:2021-11-25 01:01:49 【问题描述】:我正在尝试使用 c# 将一些文本附加到现有的 TEXT 文件中。我已经尝试了以下四种不同的方法,但它不起作用。这确实可以在我家里的机器上工作,但不能在我工作的桌面上工作(所以我假设两台 PC 之间有所不同,而不是 c# 代码。)我已经查看了这个文本文件的权限和所有内容看起来不错。我当然有正确的权限写入这个文件。它们都运行 Windows 10。两台机器都运行 Visual Studio 2019 社区版版本 16.11.3。我是两台机器的管理员。
var thePath = "C:\\Temp\\Logs\\MyTextFile.txt";
File.AppendAllText(thePath, "New Data" + Environment.NewLine);
File.AppendAllLines(thePath, new [] "New Data" );
using (StreamWriter sw = new StreamWriter(thePath, true))
sw.WriteLine("New Data");
sw.Flush();
sw.Close();
using (StreamWriter sw2 = File.AppendText(thePath))
sw2.WriteLine("New Data");
sw2.Flush();
sw2.Close();
【问题讨论】:
您遇到异常了吗?是否在两台机器上都启用了 UAC?您的应用程序是否在两台机器上运行提升? 你写的代码好像没有问题。您应该发布错误消息或对其进行调试。File.AppendAllText(thePath, "New Data" + Environment.NewLine);
本身应该可以工作,但是它只会添加到同一行,而不会给你一个新行。
我认为对Flush
和Close
的调用是不必要的,因为你有一个using
语句应该为你刷新和关闭StreamWriters。尝试写入您更有可能拥有写入权限的位置,例如当前用户的 Documents 目录。
hmm... 公司安全策略在访问“C:\”时可能会很棘手(如果 Temp 是用另一个 aoocunt 创建的,而不是您的,等等...)。您可以在 %Appdata% 中对其进行测试(登录用户可以在这里执行“所有操作”)以确定吗? File.AppendAlltext
应该没问题 - 如果权限合适:-)
您可以尝试自己创建文件并写入文件,然后运行此代码。通过自己创建文件,它将排除(或确认)问题是否归结为权限。不是解决办法,但可以让您专注于真正的原因。
【参考方案1】:
多亏了对 Google 的更多检查,问题原来是 Comodo 阻止我的机器写入该驱动器/文件夹。一旦我们(暂时)关闭它,它就工作得很好。感谢您的所有意见。
【讨论】:
以上是关于c#无法将文本附加到现有文件[关闭]的主要内容,如果未能解决你的问题,请参考以下文章