【发布时间】:2009-08-07 20:53:36
【问题描述】:
我正忙着写一个在windows下运行的应用程序
保存临时文件的正确位置在哪里?
【问题讨论】:
标签: windows windows-vista
我正忙着写一个在windows下运行的应用程序
保存临时文件的正确位置在哪里?
【问题讨论】:
标签: windows windows-vista
如果您使用.NET,请使用Path.GetTempPath()。这将保证您使用分配给运行您的应用程序的用户的临时目录,而不管它存储在哪里。
如果你浏览文件系统,你会注意到有很多“temp”目录:
...等等。其中一些路径依赖于操作系统,并且不会出现在某些 Windows 风格上。因此,为自己节省一些时间和麻烦,让 .NET 框架找出“临时”路径的位置。
【讨论】:
使用GetTempPath 和可能的GetTempFileName 来确定放置临时文件的位置。这是获取文件临时位置的最可靠、对最终用户友好且面向未来的方法。
【讨论】:
在临时目录中?
使用GetTempPath 或在批处理文件中使用 %TEMP%
【讨论】:
使用GetTempPath API,或适用于您的编程环境的等效API。
【讨论】:
C:\Temp 不是一个好的选择。
如果您使用的是 .Net,请使用如下代码:
string baseFolder = System.Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData);
string cfgFolder = Path.Combine(baseFolder, "MyAppName");
try
{
if (!Directory.Exists(cfgFolder))
{
Directory.CreateDirectory(cfgFolder);
}
}
catch { } // If no access, not much we can do.
为应用数据的中期存储获得一个位置,或为数据的临时存储找到 Path.GetTempPath()。
【讨论】:
c:\Temp 不是一个好主意?我并不反对你的观点,我只是好奇你的推理 =)
这取决于您使用的语言:
string tempFolder = System.IO.Path.GetTempPath();
例如,将在 C# 中为您返回适当的文件夹。
或者,如果必须的话,可以使用环境变量 TEMP 或 TMP。
【讨论】:
C:\Documents and Settings\用户名\Application Data\IsolatedStorage
【讨论】: