如何指定Streamwriter路径位置

时间:2012-08-17 09:21:15

标签: c# c#-4.0

我想使用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();
       }

   }

3 个答案:

答案 0 :(得分:2)

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

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

答案 1 :(得分:0)

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

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();
        }
    }
}

答案 2 :(得分:0)

假设您的控制台应用程序项目名称为DataPrep。现在,您可以通过创建一个新文件db.json

来在Data目录位置中进行写入
string filePath = Path.GetFullPath(Path.Combine(Environment.CurrentDirectory, @"..\..\..\")) + @"Data\db.json";
            if (!File.Exists(filePath))
            {
                using (StreamWriter _streamWriter = File.CreateText(filePath))
                {
                    _streamWriter.Write(resultAll);
                    _streamWriter.Flush();
                }
            }
            else if (File.Exists(filePath))
            {
                using (var _streamWriter = new StreamWriter(filePath))
                {
                    _streamWriter.Write(resultAll);
                    _streamWriter.Flush();
                }

            }