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); 本身应该可以工作,但是它只会添加到同一行,而不会给你一个新行。 我认为对FlushClose 的调用是不必要的,因为你有一个using 语句应该为你刷新和关闭StreamWriters。尝试写入您更有可能拥有写入权限的位置,例如当前用户的 Documents 目录。 hmm... 公司安全策略在访问“C:\”时可能会很棘手(如果 Temp 是用另一个 aoocunt 创建的,而不是您的,等等...)。您可以在 %Appdata% 中对其进行测试(登录用户可以在这里执行“所有操作”)以确定吗? File.AppendAlltext 应该没问题 - 如果权限合适:-) 您可以尝试自己创建文件并写入文件,然后运行此代码。通过自己创建文件,它将排除(或确认)问题是否归结为权限。不是解决办法,但可以让您专注于真正的原因。 【参考方案1】:

多亏了对 Google 的更多检查,问题原来是 Comodo 阻止我的机器写入该驱动器/文件夹。一旦我们(暂时)关闭它,它就工作得很好。感谢您的所有意见。

【讨论】:

以上是关于c#无法将文本附加到现有文件[关闭]的主要内容,如果未能解决你的问题,请参考以下文章

带有附加文本的文件目录重定向[关闭]

C# 应用程序未保存到 xml [关闭]

如何将文本附加到 Java 中的现有文件?

将 </> 文本附加为 html 时,它不会加载到 DOM [关闭]

在 C# 中在运行时创建 pdf 文件 [关闭]

在 C# 中在运行时创建 pdf 文件 [关闭]