差分操作のログを作成します。私はファイル名として日付を付けて毎日新しいファイルを作成します。今、もしディレクトリが存在しなければ、私はシステムが私のためにディレクトリを作ってほしい。私はこのトピックを検索し、すべての答えが同じものに来る:Directory.CreateDirectory(FilePath);
を使用してください。しかし、これは動作しないようです。明白な何かが欠けているかもしれません。ディレクトリが存在しない場合は作成してください
ここでは、コードです:
public class ElderlyHomeLog : ILog
{
private const string FilePath = "/Logs/WZCLogs/";
public void MakeLog(string text)
{
if (!Directory.Exists(FilePath))
{
Directory.CreateDirectory(FilePath);
}
string logFile = DateTime.Now.ToString("ddMMyyyy") + ".txt";
if (!File.Exists(HostingEnvironment.ApplicationPhysicalPath + FilePath + logFile))
{
FileStream f = File.Create(HostingEnvironment.ApplicationPhysicalPath + FilePath + logFile);
f.Close();
}
using (StreamWriter sw = new StreamWriter(HostingEnvironment.ApplicationPhysicalPath + FilePath + logFile, true))
{
sw.WriteLine(text);
sw.Close();
}
}
}
エラーメッセージ:
タイプの例外が 'System.IO.DirectoryNotFoundException' がmscorlib.dllで を発生しますが、ユーザーコード
で処理されていませんでした追加情報: 'C:¥Users¥***¥Source¥Repos¥Project¥ProjectName¥Logs¥WZCLogs¥31032016.txt'のパスの一部を見つけることができませんでした。
エラーメッセージや説明がありますか? –
作成するディレクトリの絶対パスを指定しようとしましたか?また、 'Path.Combine'を使ってパスを結合すると、ディレクトリの区切り文字を心配する必要がなくなります。 –
FilePath変数はおそらく完全ではありませんか? –