0

次のコードが機能しないようです。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;

namespace TechKit
{
   class CsvWriter
   {
      public static void csvLogWrite(string ADName, string LogTimeStamp, string LogEntry, string ATOW, string SSC, string Specialty)
      {
         string dirPath = Path.GetDirectoryName(Properties.Settings.Default.TechKitSDFLocation);
         dirPath = Path.Combine(dirPath, "Logs", DateTime.Now.Year.ToString());

         try
         {
            // Determine whether the directory exists. 
            if (Directory.Exists(dirPath))
            {
               Console.WriteLine("Log Path Exisits - Using It");
               return;
            }

            // Try to create the directory.
            DirectoryInfo di = Directory.CreateDirectory(dirPath);
            Console.WriteLine("The Log directory was created successfully at {0}.", Directory.GetCreationTime(dirPath));

         }

         catch (Exception e)
         {
            Console.WriteLine("The directory creation process failed: {0}", e.ToString());
         }

         finally { }

         string newFileName = DateTime.Now.Month.ToString() + ".csv";
         string combinedPath = Path.Combine(dirPath, newFileName);
         string logDetails = LogTimeStamp + "," + Specialty + "," + ADName + "," + LogEntry + Environment.NewLine;

         if (!File.Exists(combinedPath))
         {
            string logHeader = "Timestamp,Specialty,Name,Log Entry" + Environment.NewLine;
            File.WriteAllText(newFileName, logHeader);
         }

         File.AppendAllText(combinedPath, logDetails);
         Console.WriteLine("Data Written To CSV FIle:");
         Console.WriteLine(logDetails);
         Console.WriteLine("****************************");
      }
   }
}

コードが存在しないディレクトリに書き込もうとすると、例外が発生します。私は得る:

'A first chance exception of type 'System.NotSupportedException' occurred in mscorlib.dll'

コンソールでも。私は比較的初心者なので、途方に暮れています。ディレクトリを作成せずに、ファイルを問題なく書き込むことができます。

ありがとう...

4

1 に答える 1

1

ディレクトリパスを確認してから、読み取り/書き込み権限であることを確認します。

そして、このようなコードを使用します

DirectoryInfo dir = new DirectoryInfo(dirPath);

or 

System.IO.Director.CreateDirectory("Path to directory" ) 
于 2013-06-22T04:56:02.777 に答える