【问题标题】:File.WriteAllText() is trying to write to wrong directoryFile.WriteAllText() 正在尝试写入错误的目录
【发布时间】:2018-12-04 11:12:56
【问题描述】:

我有以下代码

string filePath = @"C:\temp\Test.txt";
File.WriteAllText(filePath, csvContent);

但是,当我运行控制台应用程序时,它会引发以下错误...

找不到路径的一部分 'C:\Code\ScheduledTextMigration\ScheduledTextMigration\bin\Debug\C\temp\Test.txt'。

它到底为什么要写入那个目录?

【问题讨论】:

  • 在 File.WriteAllText 调用上放置一个断点,在调试器中运行您的应用程序。到达断点时filePath的值是多少?
  • 这里没有复制。请问你能提供minimal reproducible example吗?
  • 断点处文件路径为“C\\temp\\ScheduleTextMigration.txt”
  • : 不见了
  • 嗯,这与您在问题中向我们展示的 filePath 不同,但缺少 :

标签: c# .net system.io.file


【解决方案1】:

仔细检查你的字符串在哪里

string filePath = @"C:\temp\Test.txt"

我愿意打赌你错过了 C 和 \ 之间的冒号,例如

string filePath = @"C\temp\Test.txt"

默认情况下,调试目录是应用程序的当前路径 (Environment.CurrentDirectory),如果您未指定有效路径,则将其用作路径的基础。

【讨论】:

  • 我直接从我的代码中复制并粘贴了它。冒号肯定在那里。
  • 虽然我正在写我的答案,但有几个 cmets 进来了,看来您自己的评论已经证实了我的建议。 "断点处的文件路径为"C\\temp\\ScheduleTextMigration.txt""
【解决方案2】:

奇怪...

我将代码移到了一个新方法(剪切并粘贴),现在它可以工作了...

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-08-16
    • 2018-03-07
    • 2012-03-20
    • 2016-10-28
    • 2016-02-25
    • 2012-07-07
    • 2016-10-20
    • 1970-01-01
    相关资源
    最近更新 更多