如何指定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(); } }
你需要做出以下改变
ResolveUrl
用Server.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(); } } }