Desidero creare registri per azioni diverse. Creo un nuovo file ogni giorno con la data come nome del file. Ora, se la directory non esiste, voglio che il sistema faccia la directory per me. Ho cercato questo argomento e tutte le risposte arrivano alla stessa cosa: usa Directory.CreateDirectory(FilePath);
. Tuttavia questo non sembra funzionare. Potrebbe mancare qualcosa di ovvio.Crea directory se non esiste
Ecco il codice: messaggio
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();
}
}
}
Errore:
Un'eccezione di tipo 'System.IO.DirectoryNotFoundException' si è verificato in mscorlib.dll ma non è stata gestita nel codice utente
Ulteriori informazioni: Impossibile trovare una parte del percorso 'C: \ Users \ *** \ Source \ Repos \ Project \ ProjectName \ Logs \ WZCLogs \ 31032016.txt'.
Messaggio di errore o descrizione? –
Hai provato a dargli un percorso assoluto per la directory da creare? Inoltre, se usi 'Path.Combine' per combinare percorsi, non dovrai preoccuparti dei caratteri del separatore di directory. –
la variabile FilePath non è completa probabilmente? –