在哪里写我的临时文件?

时间:2011-01-13 17:02:46

标签: c# file-io

我有很多代表pdf的byte []。每个字节数组都需要在应用程序的开头加载,并在我的gui上显示为缩略图。到目前为止,我已经设法使用以下方法将文件写入临时位置:

System.IO.Path.GetTempPath();

然后使用此路径我获取所有pdf文件,使用

编写
System.IO.File.WriteAllBytes(fileName, arrayOfPdfs[i]);

然后导航到该目录,获取所有pdf文件并将其转换为我的应用中的缩略图。

问题是我只想要我刚才放在临时位置的pdf,所以我怎么能存储pdf,甚至我还能在哪里存储它们所以我知道什么时候我把它们变成缩略图,我正在阅读的文件是我刚写的文件?这样我可以确定用户只查看与我们系统上的搜索相关的相关pdf。

感谢。

5 个答案:

答案 0 :(得分:27)

在基本临时目录中构建一个随机命名的目录:

string directoryName = Path.GetRandomFileName();
Directory.CreateDirectory(Path.Combine(Path.GetTempPath(), directoryName));

将文件存储在那里。

答案 1 :(得分:7)

我建议您在应用的操作系统提供的用户ApplicationData/LocalApplicationData文件夹中使用

Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData);

当然如果存储不需要持续很长时间(非常临时),那么你可以使用temp文件夹并在其中创建一个文件夹来隔离你的文件。

答案 2 :(得分:1)

你能在Temp路径中创建一个子目录吗?

string dir = System.IO.Path.GetTempPath() + "\\<searchstring>;

答案 3 :(得分:0)

使用Path.GetTempFileName并跟踪您在会话期间分配的临时文件。你应该在程序退出时进行清理。

答案 4 :(得分:0)

你可以:

  • 记录第一个和最后一个项目的创建时间,然后仅编辑在该创建窗口中创建的文件
  • 将文件移动到保留文件夹,创建缩略图,然后将它们移动到它们原本应该处于的文件夹中,确保在运行结束时保留文件夹为空