1

我正在为我的应用程序创建一个记录器,但遇到了一个问题,我需要将我的日志文件保存在我的 C 驱动器中,但是当我执行代码时,它给我一个错误“不支持给定路径格式”我的当前代码如下

string path="C:\\Logger\\"+DateTime.Now.Date.ToString()+".txt";

    public void CreateDirectory()
    {
        if(!File.Exists(path))
        {
            File.Create(path);
        }
    }

有什么解决办法???

4

2 回答 2

6

您将不得不格式化日期:

string path="C:\\Logger\\"+DateTime.Now.Date.ToString("yyyy_MM_dd")+".txt";

因为操作系统不会接受这样的事情:

C:\Logger\07/27/2013.txt

现在,为了将来参考,请考虑使用Path.Combine来构建您的路径:

var path = Path.Combine("C:\\Logger",
    DateTime.Now.Date.ToString("yyyy_MM_dd"),
    ".txt");

您不必确定何时提供反斜杠以及何时不提供。如果没有,它会为您附加。

最后,如果目录不存在,您可能会遇到问题。您可以采取以下措施来缓解这种情况:

var path = ...
var dir = Path.GetDirectoryName(path);

if (!Directory.Exists(dir))
{
    Directory.Create(dir);
}

但即便如此,您也可能在运行时遇到权限问题。

于 2013-07-27T09:45:45.880 回答
1

检查 this: 的结果DateTime.Now.Date.ToString()是否被操作系统接受。

于 2013-07-27T09:44:52.313 回答