【问题标题】:Writing File to Temp Folder将文件写入临时文件夹
【发布时间】:2013-12-06 12:02:10
【问题描述】:

我想使用StreamWriter 将文件写入临时文件夹。

可能每台电脑的路径不同,所以我尝试使用%temp%\SaveFile.txt,但没有成功。

如何使用环境变量保存到临时文件夹?

例如,我可以使用环境变量在%appdata% 中存储文件吗?

【问题讨论】:

    标签: c# io path


    【解决方案1】:

    【讨论】:

    • 好的,非常感谢。在哪里可以找到更多的环境变量,例如主硬盘、用户设置和应用数据?
    • System.Environment 类会帮你获取环境变量等等。还要确保检查 System.Environment.SpecialFolder 枚举。 msdn.microsoft.com/en-us/library/…
    • 所以对于临时文件夹,我总是必须使用 Path.GetTempPath();,而对于任何其他特殊路径(如 AppData 或 ProgramFiles)我必须使用 System.Environment?
    • 你认为这个婴儿像代码示例一样,还是可以多次执行这个方法来提高性能?
    【解决方案2】:

    Path 类在这里非常有用。
    你有两个方法被调用

    Path.GetTempFileName

    Path.GetTempPath

    这可以解决您的问题

    例如,您可以这样写:(如果您不介意确切的文件名)

    using(StreamWriter sw = new StreamWriter(Path.GetTempFileName()))
    {
        sw.WriteLine("Your error message");
    }
    

    或者如果你需要设置你的文件名

    string myTempFile = Path.Combine(Path.GetTempPath(), "SaveFile.txt");
    using(StreamWriter sw = new StreamWriter(myTempFile))
    {
         sw.WriteLine("Your error message");
    }
    

    【讨论】:

    • 临时目录根据会话更改,使用 RDP 我登录并访问%TEMP% 它指向 temp/2 后来 temp/4 ...如何获取临时文件夹(不是 temp / digit )
    • 不要在对三年前答案的评论中提问。发布(在强制性研究之后)您自己的问题,说明与此处的不同之处
    • 如果您不关心名称,但关心扩展名:Path.ChangeExtension(Path.GetTempFileName(), "foo")
    • 通常更易于使用string contents = File.ReadAllText(path)File.WriteAllText(path, contents)
    【解决方案3】:

    您可以使用以下方式动态检索临时路径,更好地使用它,而不是使用硬编码字符串值作为临时位置。它将根据需要返回临时文件夹或临时文件。

    string filePath = Path.Combine(Path.GetTempPath(),"SaveFile.txt");
    

    Path.GetTempFileName();
    

    【讨论】:

      【解决方案4】:
      System.IO.Path.GetTempPath()
      

      TMP 环境变量指定的路径。 TEMP 环境变量指定的路径。 USERPROFILE 环境变量指定的路径。 Windows 目录。

      【讨论】:

        【解决方案5】:

        对于 %appdata% 看看

        Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData)
        

        【讨论】:

        • 我可以把它保存到一个字符串变量中,这样我就不必每次都重写了吗?
        • 是否需要对 RW 的任何特殊权限.. 或者标准用户也可以在该目录上写入?
        猜你喜欢
        • 2017-06-19
        • 2012-12-22
        • 2012-10-27
        • 2010-11-10
        • 2021-12-08
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多