增加判断如果路径上的文件不存在就创建 参考public static void SaveLog(string content, string prefix){ Console.WriteLine("-------------------------------"); Console.WriteLine(AppDomain.CurrentDomain.BaseDirectory); Console.WriteLine("-------------------------------"); if (!Directory.Exists(_LogPath)) { Directory.CreateDirectory(_LogPath); } string s = $"{DateTime.Now} ------------------------------------------------------------\r\n{content}\r\n\r\n"; AppendTxt(s, string.Format("{0}{1}{2}.txt", _LogPath, (prefix + "_"), DateTime.Now.ToString("yyyyMMdd")));}public static void AppendTxt(string s, string fileName){ try { FileStream fs; int maxTries = 10; int tries = 0; while (true) { try { fs = new FileStream(fileName, FileMode.Append, FileAccess.Write, FileShare.None); break; } catch (IOException) { tries++; if (tries >= maxTries) { throw; } Thread.Sleep(1000); } } byte[] content = Encoding.GetEncoding("UTF-8").GetBytes(s); fs.Write(content, 0, content.Length); fs.Close(); } catch (Exception) { }}
时间: 2023-09-17 15:14:23 浏览: 144
好的,你想要在保存日志之前增加判断,如果路径上的文件夹不存在就创建它。这是一个很好的想法,可以确保日志文件夹存在并且可以正常保存日志。下面是增加判断的代码示例:
```csharp
public static void SaveLog(string content, string prefix)
{
Console.WriteLine("-------------------------------");
Console.WriteLine(AppDomain.CurrentDomain.BaseDirectory);
Console.WriteLine("-------------------------------");
if (!Directory.Exists(_LogPath))
{
Directory.CreateDirectory(_LogPath);
}
string s = $"{DateTime.Now} ------------------------------------------------------------\r\n{content}\r\n\r\n";
string fileName = string.Format("{0}{1}{2}.txt", _LogPath, (prefix + "_"), DateTime.Now.ToString("yyyyMMdd"));
if (!File.Exists(fileName))
{
File.Create(fileName).Close();
}
AppendTxt(s, fileName);
}
public static void AppendTxt(string s, string fileName)
{
try
{
FileStream fs;
int maxTries = 10;
int tries = 0;
while (true)
{
try
{
fs = new FileStream(fileName, FileMode.Append, FileAccess.Write, FileShare.None);
break;
}
catch (IOException)
{
tries++;
if (tries >= maxTries)
{
throw;
}
Thread.Sleep(1000);
}
}
byte[] content = Encoding.GetEncoding("UTF-8").GetBytes(s);
fs.Write(content, 0, content.Length);
fs.Close();
}
catch (Exception)
{
}
}
```
在保存日志之前,我们首先检查路径 `_LogPath` 是否存在,如果不存在,我们就创建一个文件夹。然后,我们创建日志文件的路径,并检查该文件是否存在。如果文件不存在,我们就创建一个空的文件。最后,我们调用 `AppendTxt` 方法将日志写入文件中。这样就可以确保路径和文件存在并正常保存日志了。
阅读全文