【问题标题】:File is always named with the Path文件始终以路径命名
【发布时间】:2014-03-28 15:55:13
【问题描述】:

我的文件总是命名为路径和我想在文件名中包含的其他信息,但为什么会这样?

路径应该是选择的文件夹,然后我想创建一个文件夹,我怎样才能添加一个文件夹而不是+那个文件夹路径? 该文件也总是在我想要的那一层之上创建。例如:C:\Test 但文件保存在 C:\ 而不是 C:\Test。

public static string path= string.Empty;        

string fileName = DateTime.Now.ToString("yyyy.MM.dd") + "test.txt";

try
{
    FileStream fs = new FileStream(path + fileName, FileMode.CreateNew, FileAccess.ReadWrite);
    StreamWriter sw= new StreamWriter(fs);

    sw.WriteLine("Test and so on ..");
}
catch(Exception ex) { }

【问题讨论】:

  • 当您不指定路径时,为什么希望它位于c:\test 中? chosen folder 是什么意思,因为我没有看到任何选择文件夹的方法。
  • 文件将保存在根目录,因为您没有指定路径/​​
  • 路径在工作目录中,但这并不重要,它只是一个示例。更改路径有效,但文件名和路径是个问题,因为路径总是比我想要的高一层。

标签: c# file visual-studio-2012 path filestream


【解决方案1】:

不要使用字符串连接,而是使用Path.Combine。除此之外,如果您也想使用 Mono,那将是可移植的。

哦,还有更简单的方法来创建文本文件:

using (var writer = File.CreateText(Path.Combine(path, fileName))
{
    writer.WriteLine(...);
}

最后,我强烈建议在您的文件名中使用- 而不是.,这样任何查看first . 并期望其余为扩展名的内容都不会不要混淆:

string fileName = DateTime.ToString("yyyy-MM-dd") + "-test.txt";

【讨论】:

  • 以及如何使用文件流修复错误。我在使用 File 时遇到了几个问题,例如该文件仍在使用等等。以及如何将创建的文件夹添加到路径中?
  • @user3438236:“错误”?您还没有描述错误。但我注意到您没有为您的流或您的编写器使用using 语句(与我的代码不同),这意味着您没有关闭它们......
  • 我后来关闭了filstream和streamwriter,因为我在txt中写入了很多东西。文件
  • @user3438236:那么您的代码与呈现的不一样 - 变量超出了块末尾的范围。我不知道您没有向我们展示的代码有什么问题 - 但我强烈建议您使用 using 语句。如果您还有其他问题,请提出新问题。
猜你喜欢
  • 2018-09-29
  • 2017-04-10
  • 2015-08-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-09-13
相关资源
最近更新 更多