如何指定Streamwriter路径位置

我想使用StreamWriter将文本写入文件。但是文件名应该是当前日期名称。 这是我的编码。有人可以告诉我如何指定文件创建路径吗?

代码编辑:在这里我想创建一个.txt文件但在这里没有创建文件。

public void WriteToFile( string name, string source, int dest, string messageIn, string operatorNew) { string directory = ResolveUrl("~/DesktopModules/SMSFunction/SMSText"); string filename = String.Format("{0:yyyy-MM-dd}__{1}", DateTime.Now,name); string path = Path.Combine(directory, filename); if (!File.Exists(filename)) { using (StreamWriter str = File.CreateText(path)) { str.WriteLine("msisdn: " + source); str.WriteLine("shortcode : " + dest); str.WriteLine("Message : " + messageIn); str.WriteLine("Operator :" + operatorNew); str.Flush(); } } else if (File.Exists(filename)) { using (var str = new StreamWriter(filename)) { str.WriteLine("msisdn: " + source); str.WriteLine("shortcode : " + dest); str.WriteLine("Message : " + messageIn); str.WriteLine("Operator :" + operatorNew); str.Flush(); } } 

你需要做出以下改变

ResolveUrlServer.MapPath ResolveUrl

 string directory = Server.MapPath("~/DesktopModules/SMSFunction/SMSText"); 

2.添加文件扩展名.txt ,如下所示

 string filename = String.Format("{0:yyyy-MM-dd}__{1}.txt", DateTime.Now,name); 

3.当您检查文件是否存在时,提供文件的路径,而不是文件名

 File.Exists(path); 

4.在else if块下,这里也提供路径,而不是文件名

 var str = new StreamWriter(path)); 

将所有代码放在一起看起来像,

  string directory = Server.MapPath("~/DesktopModules/SMSFunction/SMSText"); string filename = String.Format("{0:yyyy-MM-dd}__{1}.txt", DateTime.Now, name); string path = Path.Combine(directory, filename); if (!File.Exists(path)) { using (StreamWriter str = File.CreateText(path)) { str.WriteLine("msisdn: " + source); str.WriteLine("shortcode : " + dest); str.WriteLine("Message : " + messageIn); str.WriteLine("Operator :" + operatorNew); str.Flush(); } } else if (File.Exists(path)) { using (var str = new StreamWriter(path)) { str.WriteLine("msisdn: " + source); str.WriteLine("shortcode : " + dest); str.WriteLine("Message : " + messageIn); str.WriteLine("Operator :" + operatorNew); str.Flush(); } 

File.Create返回FileStream ,您需要StreamWriter 。 你必须使用它接受Stream构造函数:

 using (var str = new StreamWriter(File.CreateText(path))) 

简化,使用FileStream创建或覆盖您的文件(见下文),具体取决于您可能希望将FileMode更改为其他内容的所需(Append?)

 public void WriteToFile(string name, string source, int dest, string messageIn, string operatorNew) { string directory = ResolveUrl("~/DesktopModules/SMSFunction/SMSText"); string filename = String.Format("{0:yyyy-MM-dd}__{1}", DateTime.Now,name); string path = Path.Combine(directory, filename); using (FileStream fs = new FileStream(path, FileMode.Create)) { using (StreamWriter str = new StreamWriter(fs)) { str.WriteLine("msisdn: " + source); str.WriteLine("shortcode : " + dest); str.WriteLine("Message : " + messageIn); str.WriteLine("Operator :" + operatorNew); str.Flush(); } } }