Chcę tworzyć dzienniki dla działań różnicowych. Każdego dnia tworzę nowy plik z datą jako nazwą pliku. Teraz, jeśli katalog nie istnieje, chcę, aby system zrobił dla mnie katalog. Szukałem tego tematu, a wszystkie odpowiedzi dotyczą tego samego: użyj Directory.CreateDirectory(FilePath);
. Jednak to nie wydaje się działać. Być może brakuje czegoś oczywistego.Utwórz katalog, jeśli nie istnieje
Oto kod: Komunikat
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();
}
}
}
Błąd:
Wyjątek typu '' wystąpił System.IO.DirectoryNotFoundException w pliku mscorlib.dll ale nie było obsługiwane w kodzie użytkownika
Dodatkowe informacje: Nie można znaleźć części ścieżki "C: \ Users \ *** \ Source \ Repos \ Project \ ProjectName \ Logs \ WZCLogs \ 31032016.txt".
Komunikat o błędzie lub opis? –
Czy próbowałeś podać absolutną ścieżkę do utworzenia katalogu? Ponadto, jeśli użyjesz 'Path.Combine' do łączenia ścieżek, nie musisz się martwić o znaki separatora katalogu. –
Zmienna FilePath nie jest kompletna prawdopodobnie? –