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# 获取/打开.NET中的临时文件_C#_.net - Fatal编程技术网

C# 获取/打开.NET中的临时文件

C# 获取/打开.NET中的临时文件,c#,.net,C#,.net,我想做下面的事情。哪个函数返回打开的唯一文件?因此,我可以确保它是我的,我不会覆盖任何内容或编写复杂的fn生成/循环 BinaryWriter w = GetTempFile(out fn); w.close(); File.Move(fn, newFn); 为此,有两种方法: 这将创建一个临时文件并返回其名称 这将使用加密性强的随机字符串作为文件名,并且不会为您创建文件 通常第一种方法就足够了;GetRandomFileName的文档说明: 当文件系统的安全性至关重要时,应使用此方法

我想做下面的事情。哪个函数返回打开的唯一文件?因此,我可以确保它是我的,我不会覆盖任何内容或编写复杂的fn生成/循环

BinaryWriter w = GetTempFile(out fn);
w.close();
File.Move(fn, newFn);

为此,有两种方法:

  • 这将创建一个临时文件并返回其名称

  • 这将使用加密性强的随机字符串作为文件名,并且不会为您创建文件

通常第一种方法就足够了;GetRandomFileName的文档说明:

当文件系统的安全性至关重要时,应使用此方法而不是GetTempFileName


可以使用该方法获得一个非常唯一的临时文件名。

您可以执行以下操作:

var path = Path.GetTempFileName();
var stream = new FileStream(path, FileMode.Create, FileAccess.Write, FileShare.None);
var writer = new BinaryWriter(stream);
  ...

另一个选择是课堂。它提供了一个IDisposable包装,非常类似于文档中为Path.GetTempFileName()建议的内容