2011-03-31 86 views
1

我正在編寫一個程序來分析Windows服務的日誌文件。該程序工作正常,它可以正確讀取和解析日誌文件等。 問題是,當我嘗試使用活動服務運行它時,它會返回一個IOError,我猜是因爲這些文件被「鎖定」或類似的東西。有沒有解決方法?這是我用它來讀取和解析文件的代碼:IOError打開日誌文件

private void OnTimedEvent(object source, ElapsedEventArgs e) 
{ 
    var t = Task<int>.Factory.StartNew(() => 
     { 
      string[] arr = FileManager.getFiles(textBox1.Text); 
      string destination = textBox1.Text + "\\backup\\"; 
      string filename = "backup.bak"; 

      if (!Directory.Exists(@destination)) 
      { 
       Directory.CreateDirectory(@destination); 
      } 

      StreamWriter w = File.AppendText(@destination+backupfile); 

      foreach (string s in arr) 
      { 
       string sLine = ""; 
       StreamReader objReader = new StreamReader(s); 
       while (sLine != null) 
       { 
        sLine = objReader.ReadLine(); 
        if (!String.IsNullOrEmpty(sLine)) 
        { 
         List<string> output = Parser.parse(sLine); 
         StreamWriter hh = File.AppendText(@textBox2.Text + filename); 

         for(int i = 3; i < output.Count; i++) 
         { 
          string str = output[i]; 

          if (!String.IsNullOrEmpty(str)) 
          { 
           hh.WriteLine(str); 
          } 
         } 
         hh.Close(); 
         w.WriteLine(sLine); 
        } 
       } 
       objReader.Close(); 
       //File.Delete(s); 
      } 
      w.Close(); 
      return 1; 
     }); 
} 
+0

請給異常喲你正在投入生產,只是一個IO錯誤可能意味着大量的事情。使用的文件,未找到的文件等等 – 2011-03-31 12:23:08

回答

0

更換

new StreamReader(s)

new StreamReader(File.OpenRead(s))

new StreamReader(new FileStream(s, FileMode.Open))