2014-03-28 81 views
0

我的文件总是被命名为路径和我想要的文件名中的其他信息,但它为什么会这样?文件总是以路径命名

该路径应该是选定的文件夹,我想创建一个文件夹,然后,我怎么可以添加一个文件夹,并说+文件夹路径? 该文件也总是创建一个我想要的一层以上。例如: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) { } 
+2

为什么你会想到它是在'C:\ test'当你不指定路径?并且*选择的文件夹*的含义是什么,因为我没有看到选择文件夹的方法。 –

+2

文件将被保存在根目录中,因为您没有指定路径/​​ – Jmoreland91

+0

该路径位于工作目录中,但它并不重要,它只是一个示例。改变路径的作品,但文件名和路径是一个问题,因为路径总是比我想要的高一层。 – Proton

回答

2

而不是使用字符串连接,请使用Path.Combine。除了其他任何东西,如果你想要使用单声道,那也是可以随身携带的。

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

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

最后,我强烈建议你使用的文件名的-代替.,所以任何事情看起来在第一.,预计剩下的是一个扩展不感到困惑:

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

以及如何修复使用文件流的错误。使用File时遇到了一些问题,如文件仍在使用等等。我怎么能添加一个创建的文件夹到路径? – Proton

+0

@ user3438236:“错误”?你还没有描述过一个错误。但我注意到,你没有为你的流或作者使用'using'语句(不像我的代码),这意味着你没有关闭它们...... –

+0

我之后关闭了filstream和streamwriter,因为有很多东西我写入txt。文件 – Proton