【问题标题】:C#: new file() - where is the root save location?C#: new file() - 根保存位置在哪里?
【发布时间】:2010-07-21 21:55:01
【问题描述】:

如果我调用 File myFile = new File('myfile.txt');这个保存在哪里?

【问题讨论】:

  • 感谢 Gavin,如何保存“临时”文件?

标签: c# file default location


【解决方案1】:

它相对于进程的当前目录。这将取决于您的应用程序是如何启动的,以及您还做了什么 - 例如,选择文件对话框之类的某些操作可能会更改当前工作目录。

编辑:如果您正在寻找一个临时文件,Path.GetTempFileName() 可能就是您想要的。您可以使用Path.GetTempPath() 获取临时文件夹。

【讨论】:

    【解决方案2】:

    这不会编译。

    编辑:但是,如果您在使用 StreamWriter 或 File.Create("text.txt") 等创建文本文件之后,那么我将遵循上面的其他答案;它将是应用程序运行的位置。请注意,正如其他人提到的,如果您正在调试,它将位于调试文件夹等中。

    【讨论】:

    • 是的......虽然我认为 OP 的要求是相当明显的。
    • @Jon Skeet:我知道,但我只是在陈述对我来说似乎立即显而易见的事情。抱歉,如果我的回答没有立即提供帮助,我已经对其进行了一些编辑。
    【解决方案3】:

    通常它会保存到运行可执行文件的同一目录中。我见过异常。 (我不记得具体细节,但它让我陷入了一个循环。我似乎记得它是作为计划任务运行时,或者是从快捷方式运行时。

    如果您使用您提供的代码 sn-p,唯一可靠的方法是检查 System.Environment.CurrentDirectory 的值。更好的是,明确说明您希望它保存的路径。

    编辑 - 添加

    我知道修改这个问题有点晚了,但我找到了一个更好的答案来确保您始终将文件保存到相对于可执行文件的正确位置。那里接受的答案值得投票,并且可能与您的问题相关。

    请看这里:Should I use AppDomain.CurrentDomain.BaseDirectory or System.Environment.CurrentDirectory?

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-10-31
      • 1970-01-01
      • 1970-01-01
      • 2016-04-14
      • 2019-07-06
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多