Управление временными файлами в небольшой программе .NET - PullRequest
1 голос
/ 28 августа 2009

Мой вопрос касается обработки временных файлов в небольшой программе .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. Я также хочу очистить эти файлы, когда они больше не нужны. Какие у меня есть варианты для этого?

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

Спасибо.

1 Ответ

5 голосов
/ 28 августа 2009

Создать папку на основе 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);}
        }
...