2017-10-18 18 views
0

datatableからのデータを使用してCSVファイルをマイフォルダに生成したいとします。私はそれのために以下のコードを書いています。コンソールアプリケーション用のフォルダにCSVが生成されていません

public static void CreateCSV(DataTable dt, string FileName) 
    { 
     try 
     { 
      string strFilePath = ConfigurationSettings.AppSettings["ExcelFilePath"].ToString() + "\\" + FileName; 
      if (!Directory.Exists(ConfigurationSettings.AppSettings["ExcelFilePath"].ToString())) 
       Directory.CreateDirectory(ConfigurationSettings.AppSettings["ExcelFilePath"].ToString()); 

      StreamWriter sw = new StreamWriter(strFilePath, false); 
      DataTable dTemp = dt; 

      int iColCount = dTemp.Columns.Count; 
      for (int i = 0; i < iColCount; i++) 
      { 
       sw.Write(dTemp.Columns[i]); 
       if (i < iColCount - 1) 
       { 
        sw.Write(","); 
       } 
      } 
      sw.Write(sw.NewLine); 

      foreach (DataRow dr in dTemp.Rows) 
      { 
       for (int i = 0; i < iColCount; i++) 
       { 
        if (!Convert.IsDBNull(dr[i])) 
        { 

         if (dr[i].ToString().Contains("\n")) 
         { 
          string x = dr[i].ToString().Replace("\n", ""); 
          string xc = RemoveSpecialCharacters(x); 
          string xc1 = RemoveSpecialCharacters1(xc); 
          //sw.Write(x); 
          sw.Write(xc1.Replace(", ", "")); 
         } 
         else 
         { 
          string x = dr[i].ToString().Replace(",", ""); 
          string xc = RemoveSpecialCharacters(x); 
          string xc1 = RemoveSpecialCharacters1(xc);         
          sw.Write(xc1.Replace(", ", ""));        
         } 
        } 
        if (i < iColCount - 1) 
        { 
         sw.Write(","); 
        } 
       } 
       sw.Write(sw.NewLine); 
      } 
      sw.Close();    
     } 
     catch (Exception ex) 
     { 
      //ErrorLog.Insert(ex.Message, ex.StackTrace, "Program.cs - MailReport", null); 
     } 
    } 

そして、私はapp.configファイルに設定されているフォルダのパス

<add key="ExcelFilePath" value="ExcelData" />

それでもcsvファイルが作成されていないばかりを下回っています。親切に助けを借りていますか

+0

デバッグ時にstrFilePathの値は何ですか? – qxg

+0

@qxg:値は 'ExcelData \ Generated_File_Record.csv'です – BNN

+0

ExcelFilePath = C:\ tempおよびFileName = test.csvで私のために働き、どのように実装されているかわからないのでRemoveSpecialCharactersは無視されます。 – Greg

答えて

1

まだ絶対パスではない相対パスがあります。あなたは絶対的なものが必要です。

使用

strFilePath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, ConfigurationSettings.AppSettings["ExcelFilePath"].ToString(), FileName);

​​

は、ディレクトリを作成します。ディレクトリが存在するかどうかを確認する必要はなく、CreateDirectoryは存在しない場合にのみ作成を試みます。

+0

私は試してみてみましょう.. !! – BNN

+0

感謝の仲間、今は正しく動作しています – BNN

関連する問題