在C#中临时写入文件

时间:2010-10-20 11:38:59

标签: c# .net file

我遇到以下问题:我有一些(二进制)文件,它们嵌入在资源中。出于某些原因,我必须在磁盘上临时写入这些文件。我该怎么办?也许这可以通过 GetRandomFilename ()或 GetTempFileName ()来完成?

2 个答案:

答案 0 :(得分:9)

在这种情况下,

GetTempFileName() 是合乎逻辑的。

正如leppie所说,确保在完成后删除文件以避免任何问题。 GetTempFileName()如果用于创建超过65535个文件而不删除以前的临时文件,则会引发IOException。

答案 1 :(得分:0)

您还可以创建Guid并从中创建文件名。保证独特和快速。

GetTempFile非常慢,因为它必须扫描免费文件名。它只是创建一个前缀并为其添加一个数字。如果已存在该名称的文件,则会跳过此名称。如果您的临时文件夹已满,则此检查需要一些时间。

也无法指定应在哪个文件夹中创建临时文件。 GetTempFile总是在Windows分区上创建临时文件。如果您创建大型临时文件,则需要指定它们应存储的位置。