输出文本文件

问题描述:

我正在将信息写入文件,并将其命名为"//Average+DateTime.txt";我想我的代码会更容易比我想澄清:输出文本文件

String path=bama(); 

if(path.Contains(".txt")) { 
    StreamWriter sw= 
     new StreamWriter(
      "C:/Users/msilliman11/Average" 
      +DateTime.Now.ToString("yyyyMMdd") 
      +".txt" 
      ); 
} 

String ElementsNum=RoundedValues.Count.ToString(); 
DateTime dt=System.DateTime.Now; 

using(var NewFile=File.Create(path)) { 
    using(var writeIt=new StreamWriter(NewFile)) { 
     writeIt.Write(
      "NA"+"," 
      +dt.Hour.ToString()+","+dt.Minute+"," 
      +dt.Day+","+dt.Month.ToString()+","+dt.Year.ToString()+"," 
      +"ALTEST "+","+"ALTEST "+","+heatgrade 
      +" "+","+"  "+","+heatname+"," 
      +DT2.Columns[3].ToString()+","+heatgrade+"," 
      +"OE2"+","+","+","+","+","+","+","+" "+ElementsNum+"," 
      ); 

     foreach(
      var pair in 
      RoundedValues.Zip(
       Elements, (a, b) => new { 
        A=a, 
        B=b 
       })) { 
      writeIt.Write(pair.B.ToString()+","+pair.A.ToString()+","); 
     } 
    } 
} 

我的问题是,我需要命名"Average"文件,并在写入文件外使用的代码块...

我敢坏在解释这些问题,但基本上即时通讯试图让第二块使用的信息,被命名为输出文件中"4222013Average.txt" ...

+0

您在第一“命名它作为//Average+DateTime.txt说:”然后你提到的“命名‘4月22日/ 2013Average.txt’,所以它的格式是你想要的吗? – 2013-04-23 01:18:10

+0

对不起,最后一个是正确的,我把斜线放在那里也犯了一个错误, – 2013-04-24 20:51:44

如果我正确地理解你的问题,我认为这可能更好地为你。

var toFile = Path.Combine(@"C:\Users\msilliman11\", 
    string.Format("Average{0}.txt", DateTime.Now.ToString("yyyyMMdd"))); 
var dt = DateTime.Now; 
using (var fs = File.OpenWrite(toFile)) 
using (TextWriter sw = new StreamWriter(fs)) 
{ 
    sw.Write(string.Join(",", 
     "NA", 
     dt.Hour, 
     dt.Minute, 
     dt.Day, 
     dt.Month, 
     dt.Year, 
     "ALTEST ", 
     "ALTEST ", 
     heatgrade, 
     " ", 
     "  ", 
     heatname, 
     DT2.Columns[3], 
     heatgrade, 
     "OE2", 
     string.Empty, 
     string.Empty, 
     string.Empty, 
     string.Empty, 
     string.Empty, 
     string.Empty, 
     string.Empty, 
     " ", 
     ",")); 

    foreach (var pair in RoundedValues.Zip(Elements, (a, b) => new { A = a, B = b })) 
    { 
     writeIt.Write(pair.B.ToString() + "," + pair.A.ToString() + ","); 
    } 
} 
+0

完美!谢谢! – 2013-04-24 23:02:42

这并不完全清楚是什么问题是,除了:

你说你想命名文件:4/22/2013Average.txt。这不可能。文件名中不允许使用正斜杠。

这是你需要知道的吗?如果没有,请更清楚。

另外一个提示:请使用string.Format()你的代码更易读:

string text = string.Format("NA,{0},{1},{2},{3},{4},ALTEST,ALTEST ,{5} ,  ,{6},{7},{5},OE2,,,,,,, {8},", 
     dt.Hour, 
     dt.Minute, 
     dt.Day, 
     dt.Month, 
     dt.Year, 
     heatgrade, 
     heatname, 
     DT2.Columns[3], 
     ElementsNum); 
    writeIt.Write(text);