2009-07-14 10 views
7

Powiel możliwe:
How can I create a temp file with a specific extension with .net ?wygenerować unikalną nazwę pliku tymczasowego z danym rozszerzeniem użyciu .NET

Jest możliwe, aby utworzyć plik tymczasowy w .NET wywołując

string fileName = System.IO.Path.GetTempFileName(); 

Spowoduje to utworzenie pliku z rozszerzeniem .TMP w katalogu tymczasowym.

Co jeśli chcesz, aby miał inne rozszerzenie? Na potrzeby tego przykładu powiedzmy, że potrzebowałem pliku kończącego się na .TR5.

Oczywistą (i buggy) rozwiązaniem jest zadzwonić

string fileName = Path.ChangeExtension(Path.GetTempFileName(), "tr5")) 

Tutejsze problemy to:

  • To nadal generowane pusty plik (np tmp93.tmp) w katalogu temp, który będzie teraz zawieszony w nieskończoność
  • Nie ma gwarancji, że wynikowa nazwa pliku (tmp93.tr5) jeszcze nie istnieje

Czy istnieje prosty i bezpieczny sposób generowania pliku tymczasowego z określonym rozszerzeniem pliku?

Odpowiedz

1

Nie wiem, czy jest obsługiwana metoda generowania rozszerzenie inne niż .tmp, ale to daje unikalny plik:

string fileName = Path.ChangeExtension(Path.GetTempFileName(), Guid.NewGuid().ToString() + "tr5")) 

Nie elegancki rozwiązanie i nie jestem pewien, czy trzeba następnie pobrać na podstawie określonego rozszerzenia, ale nadal można napisać wzór nawet w tym celu.

+0

Zauważyłem, że po opublikowaniu. –

Powiązane problemy