在c#的windows服务中为日志事件文件创建一个新目录

本文关键字:文件创建 新目录 一个 事件 日志 windows 服务 | 更新日期: 2023-09-27 18:16:12

我想知道如何通过c#在windows服务中为日志事件文件创建一个新目录

我有以下代码:

public static void WriteLog(string Message)
{
    StreamWriter sw = null;
    try
    {
        sw = new StreamWriter(AppDomain.CurrentDomain.BaseDirectory + "''DataFile.txt", true);
        //sw = new StreamWriter(AppDomain.CurrentDomain.BaseDirectory + "C:''MulpuriServiceLOG''data.txt", true);
        //sw.WriteLine(DateTime.Now.ToString() + ": " + Message);
        sw.WriteLine(Message);
        sw.Flush();
        sw.Close();
    }
    catch{}
}

在c#的windows服务中为日志事件文件创建一个新目录

正如Directory.CreateDirectory(path)的文档所述:

创建指定路径下的所有目录和子目录,除非它们已经存在。

修改自示例源代码:

string path = @"c:'MyDir";
try 
{
    // Try to create the directory.
    Directory.CreateDirectory(path);
} 
catch (Exception e) 
{
    Console.WriteLine("The process failed: {0}", e.ToString());
} 
finally {}

有一个关于dotnetperls的非常好的教程,包含示例代码,异常,提示和其他关于创建目录的有用信息!

查找SO-question以在可执行文件启动的同一目录下创建文件夹,或者简单地使用相对路径而不是绝对路径:

Directory.CreateDirectory("Test");

这样你就不会有寻找正确路径的冲突!

    File yourFolder= new File("C:/yourFolder");
    // if the directory does not exist, create it
    if (!yourFolder.exists()) {
        System.out.println("Creando directorio: " + yourFolder.getName());
        boolean result = false;
        try
        {
            yourFolder.mkdir();
            result = true;
        } 
        catch(SecurityException se){
        }        
        if(result) {    
            System.out.println("Folder created");  
        }
    }