Подтвердить что ты не робот

Получить/открыть файл temp в .NET.

Я хотел бы сделать что-то вроде ниже. Какая функция возвращает мне уникальный файл, который открывается? поэтому я могу убедиться, что он принадлежит мне, и я не буду перезаписывать что-либо или написать сложный fn generate/loop

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

Ответ 1

Для этого есть два метода:

  • Path.GetTempFileName

    Это создаст временный файл и вернет его имя.

  • Path.GetRandomFileName

    Это будет использовать криптографически сильную случайную строку в качестве имени файла и не будет создавать файл для вас.

Обычно первый метод достаточно; в документации для GetRandomFileName говорится:

Когда безопасность вашей файловой системы имеет первостепенное значение, этот метод следует использовать вместо GetTempFileName.

Ответ 2

Другой альтернативой является класс TempFileCollection. Он предоставляет оболочку IDisposable, как и в документах для Path.GetTempFileName().

Ответ 3

Вы можете сделать что-то вроде этого:

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

Ответ 4

Можно использовать метод GetTempFileName() для получения довольно уникального временного имени файла.