我正在编写一个方法,该方法采用包含消息的字符串并将此字符串写入日志文件。

我这样做是这样的:

internal static void WriteLogFile(string messageLog)
{
    if (messageLog == "")
    {
        messageLog = "L'import delle regole di inoltro è andato a buon fine. Tutte le regole di inoltro sono state inserite";
    }

    try
    {
        var filePath = new Uri(Assembly.GetEntryAssembly().GetName().CodeBase);

        Thread.CurrentThread.CurrentCulture = new CultureInfo("it-IT");
        CultureInfo ci = new CultureInfo("it-IT");

        File.WriteAllText(filePath + "log.txt", messageLog);

        Thread.CurrentThread.CurrentCulture = new CultureInfo("it-IT");

    }
    catch (Exception ex)
    {
        throw ex;
    }
}


问题是执行此行时:

File.WriteAllText(filePath + "log.txt", messageLog);


我收到以下异常:

"URI formats are not supported."


怎么了?我想念什么?我该如何解决?

最佳答案

因为WriteAllText不支持URI格式,所以您正在使用URI。

对于https://docs.microsoft.com/en-us/dotnet/api/system.io.file.writealltext?view=netframework-4.8,您需要向其传递一个字符串路径。

正如其他人所建议的那样,如果要在本地创建文件,则应使用GetPath,或根据文件要移至的位置使用其他方法。

10-06 00:37