Как иметь дело с временными файлами в ASP.NET?

Попробуйте это:

sum(v1[x] <= v2[x] <= v3[x] for x in range(3))
5
задан Roger Lipscombe 30 April 2009 в 09:02
поделиться

5 ответов

нельзя было сделать это через контроллер или использовать ASHX ( http://www.marklio.com/marklio/CommentView,guid,df8d6471-83fd-4f66-a799 -ef8274979f0e.aspx ) для потоковой передачи содержимого и удаления временных файлов после завершения записи потока?

3
ответ дан 14 December 2019 в 01:16
поделиться

мы используем application_start с таймером для запуска с интервалом каждые 24 часа и очищаем / удаляем папку временных файлов один раз в день.

0
ответ дан 14 December 2019 в 01:16
поделиться

Graphviz создает клиента и добавляет его в виде ссылки на странице. поэтому вы не можете удалить их напрямую.

Существует несколько способов:

  • при запуске приложения никто не должен использовать одно из этих изображений. поэтому вы можете удалить его
  • , добавить ссылку на изображение (например, путь) в кэш и добавить CacheItemRemovedCallback, который удалит ваше изображение. (Приятно ограничивает количество изображений на вашем HD
  • , создайте таймер, который периодически удаляет элементы

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

3
ответ дан 14 December 2019 в 01:16
поделиться

Вы можете создать обработчик (.ashx) и передавать через него временный файл. Таким образом вы узнаете, что файл был передан клиенту, и сможете удалить временный файл в конце обработчика.

Возможная проблема заключается в том, что клиент не сможет загрузить файл файл дважды, так как вы немедленно его удаляете. (Что затем можно было бы смягчить с помощью кеша вывода страницы ...

0
ответ дан 14 December 2019 в 01:16
поделиться

Мне нравится иметь дело с временными файлами, созданными действие в том же действии, которое их порождает. Например: (в MVC, но это может быть применимо к любой структуре)

public ActionResult Foo()
{
    FooCleanup(); // deletes files in "~/temp/Foo/" older than a day or so

    string filename = CreateTemporaryFile(); // Creates a temporary file like "~/temp/Foo/{timestamp}.foo"
    return File(filename);
}

Если Foo () вызывается часто, вы можете добавить некоторую логику, чтобы вызывать очистку только время от времени. Это похоже на работу cron для бедняков, но она хорошо работает.

1
ответ дан 14 December 2019 в 01:16
поделиться
Другие вопросы по тегам:

Похожие вопросы: