Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何使用C在硬盘中保存文本文件#_C#_.net_Io - Fatal编程技术网

C# 如何使用C在硬盘中保存文本文件#

C# 如何使用C在硬盘中保存文本文件#,c#,.net,io,C#,.net,Io,我正在为我的应用程序创建一个记录器,我遇到了一个问题,我需要将日志文件保存在我的C驱动器中,但当我执行代码时,它会给我一个错误“不支持给定路径格式”我的当前代码如下所示 string path="C:\\Logger\\"+DateTime.Now.Date.ToString()+".txt"; public void CreateDirectory() { if(!File.Exists(path)) { File.Cr

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

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

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

任何解决方案???

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

您必须格式化日期:

string path="C:\\Logger\\"+DateTime.Now.Date.ToString("yyyy_MM_dd")+".txt";
因为操作系统不会接受这样的内容:

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

现在,为了将来的参考,考虑使用<代码>路径。结合来构建路径:

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);
}

但即使这样,您也可能在运行时遇到权限问题。

您必须格式化日期:

string path="C:\\Logger\\"+DateTime.Now.Date.ToString("yyyy_MM_dd")+".txt";
因为操作系统不会接受这样的内容:

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

现在,为了将来的参考,考虑使用<代码>路径。结合来构建路径:

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);
}

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

阿德尔所说的可能是找到问题的关键。一般来说,如果遇到这样的情况,添加变量的实际内容会很有帮助。你试过调试你的代码吗?你可以把它留给一个框架,比如企业图书馆。)阿德尔所说的可能是找到问题的关键。一般来说,如果遇到这样的情况,添加变量的实际内容会很有帮助。你试过调试你的代码吗?你可以把它留给一个框架,比如企业图书馆。)我将文件名更改为“C:\\Logger\\log.txt”,但仍然不工作。我得到的结果是找不到路径“C:\Logger\log.txt”的一部分。此错误表示目录“Logger”找不到或您没有权限。事实上,我正在管理模式下使用Visual studio,但仍然没有授予创建目录的权限。原因是什么?我将文件名更改为“C:\\Logger\\log.txt”,但仍然不工作。我收到了此消息,但找不到路径“C:\Logger\log.txt”的一部分。此错误表示目录找不到“Logger”,或者您没有权限访问它。实际上,我在管理模式下使用Visual studio,但它仍然没有授予创建目录的权限。这背后的原因是什么