Re[3]: [Request-for-help] API for temp file.
От: aloch Россия  
Дата: 27.09.16 07:07
Оценка:
Здравствуйте, Sinix, Вы писали:

S>Здравствуйте, Слава, Вы писали:


S>>>UPD. И да, FileOptions.DeleteOnClose подходит не всегда. Чтоб не спорить — у нас точно такой же хелпер есть для директорий. Что с ними делать будем? ; )


С>>Нет абсолютно никакого способа закрыть доступ к некоему каталогу. Поэтому, и гарантировать его удаление нельзя.


S>Кэп

S>Так делать-то что?

Да ничего. Посмотри в свой Temp. У меня там 125 папок и еще порядка 1000 файлов. Ни одна создававшая их прога не сообщала мне "ойойой, не могу стереть папку/файл!!!" , а просто тихо оставляла ее в Temp и все.


Re[3]: [Request-for-help] API for temp file.
От: Слава  
Дата: 27.09.16 07:14
Оценка:
Здравствуйте, Sinix, Вы писали:

S>Кэп

S>Так делать-то что?

Я во-первых не очень понимаю, для чего может потребоваться временный каталог. Ну ладно, положим он нужен. При удалении временного каталога может быть две стратегии — удалять всё, что в нем есть и удалять только то, про что мы знаем, что это наше, нами созданное, а знать мы может, если временные файлы будут создаваться тем же объектом, который создал каталог. Можно указывать эти стратегии в конструкторе, и также в конструктор подавать какой-нибудь callback, который будет вызываться при невозможности удаления каталога. Этот callback должен быть необязательным.
Re[4]: [Request-for-help] API for temp file.
От: Слава  
Дата: 27.09.16 07:34
Оценка: -1
Здравствуйте, aloch, Вы писали:

A>Да ничего. Посмотри в свой Temp. У меня там 125 папок и еще порядка 1000 файлов. Ни одна создававшая их прога не сообщала мне "ойойой, не могу стереть папку/файл!!!" , а просто тихо оставляла ее в Temp и все.


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

Кстати, многие unistaller'ы в давние времена после удаления своей программы писали что-то вроде "Can't remove c:\program files\coolgame\saves"
Re: [Request-for-help] API for temp file.
От: namespace  
Дата: 27.09.16 19:04
Оценка: 24 (1)
S>Long story short: у нас в CodeJam среди кучи других полезняшек есть микро-хелпер для работы с временными файлами: завёл-поработал-оноавтоматомгрохнулось.
Игнорировать невозможность удаления нехорошо. Но и прерывать выполнение задачи из-за такой ерунды тоже.
Необходимо запомнить название файла куда угодно(напр. реестр) и при последующем вызове попытаться вновь удалить в фоне.
После нескольких попыток, бросить спец. событие для сообщения пользователю.
Re[2]: [Request-for-help] API for temp file.
От: Sinix  
Дата: 27.09.16 19:50
Оценка:
Здравствуйте, namespace, Вы писали:

N>Необходимо запомнить название файла куда угодно(напр. реестр) и при последующем вызове попытаться вновь удалить в фоне.

N>После нескольких попыток, бросить спец. событие для сообщения пользователю.

Ну как как и подозревал: сколько людей, столько и предпочтений по обработке исключений.

Всем не угодишь, поэтому оставим максимально дубовый вариант: запись ошибок в свой TraceSource, по аналогии с WPF PresentationTraceSources. Если этого не хватает, то будет проще написать свой код, кем прогнуть простенький хелпер под конкретный сценарий.
Re[3]: [Request-for-help] API for temp file.
От: koandrew Канада http://thingselectronic.blogspot.ca/
Дата: 30.09.16 18:06
Оценка:
Здравствуйте, Sinix, Вы писали:

S>Всем не угодишь, поэтому оставим максимально дубовый вариант: запись ошибок в свой TraceSource, по аналогии с WPF PresentationTraceSources. Если этого не хватает, то будет проще написать свой код, кем прогнуть простенький хелпер под конкретный сценарий.


Ну раз у вас библиотека всяких разностей, кто мешает вам накопипастить одну и ту же функцию несколько раз с разными вариантами обработки ошибок?
[КУ] оккупировала армия.
Re[4]: [Request-for-help] API for temp file.
От: Sinix  
Дата: 30.09.16 18:56
Оценка: +1
Здравствуйте, koandrew, Вы писали:

K>Ну раз у вас библиотека всяких разностей, кто мешает вам накопипастить одну и ту же функцию несколько раз с разными вариантами обработки ошибок?

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

Кому-то достаточно чистить временную папку при запуске приложения, кому-то надо это дело оформить в отдельный поток / задачу планировщика, ибо аптайм в месяцы, кто-то хочет просто логировать, отдельные товарищи предлагают привернуть ещё и квоты (и соответственно конфигурацию)...

Т.е. вместо простенькой штуки с абсолютно очевидным сценарием использования получается целый комбайн, который я точно не хочу поддерживать. Если кто из команды возьмётся — честь и похвала, только у нас и движухи-то в команде нет. Потому что всё очевидное-интересное сделано, а реальную работу типа исправления ошибок, добавления тестов где их нет, или документации делать чего-то не тянет (и да, меня тоже ). Так что пока делаем что нужно и не более того.
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.