Управление временными файлами в небольшой программе .NET

Мой вопрос касается обработки временных файлов в небольшой программе .NET. Эта программа / утилита просто выполняет следующие действия с двумя URL-адресами:

Download each URL to a string (WebClient.DownloadString).
Save each string to a temporary file.
Call WinMerge (Process.Start) to diff the two files (in read-only mode for both files).

В настоящее время у меня есть простейшая вещь, которая могла бы работать:

save URL1 to windows/temp/leftFileToDiff.txt
save URL2 to windows/temp/rightFileToDiff.txt.

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

Однако теперь я хотел бы изменить имена временных файлов на что-то значимое (связанное с URL-адресом), чтобы я мог видеть, что есть что в представлении WinMerge. Я также хочу очистить эти файлы, когда они больше не нужны. Какие у меня для этого есть варианты?

Моя следующая простейшая идея - иметь указанную папку, в которой они хранятся, и просто удалять ее каждый раз, когда моя программа завершается. Есть ли лучший / более элегантный / стандартный способ?

Спасибо.


person Internet man    schedule 28.08.2009    source источник
comment
См. Также stackoverflow.com/questions/659351/   -  person Ian Boyd    schedule 28.06.2011


Ответы (1)


Создать папку на основе Guid под временной областью пользователя и использовать ее?

        string path = Path.Combine(Path.GetTempPath(),
              Guid.NewGuid().ToString("n"));
        Directory.CreateDirectory(path);
        try
        {
            // work inside path
        }
        finally
        {
            try { Directory.Delete(path, true); }
            catch (Exception ex) {Trace.WriteLine(ex);}
        }
person Marc Gravell    schedule 28.08.2009
comment
Вместо GUID я бы создал путь со строкой path = Path.Combine (Path.GetTempPath (), System.IO.Path.GetRandomFileName ()); - person Oliver; 28.08.2009