![]() |
Здравствуйте, гость ( Вход | Регистрация )
![]() ![]() |
![]() |
SABROG |
![]()
Сообщение
#1
|
![]() Профессионал ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 1207 Регистрация: 8.12.2008 Из: Russia, Moscow Пользователь №: 446 Спасибо сказали: 229 раз(а) Репутация: ![]() ![]() ![]() |
Юзал QTemporaryFile для удаления временных файлов, но если приложение запускают прямо из сети, то временные файлы не удаляются. Точно такая же история и с vim/gvim, его файлики с тильдой "~" остаются на удаленном хосте, чем загаживают папочку с php скриптами на web сервере.
Я так понимаю используются какие-то нативные средства винды для управления временными файлами и Qt сама не удаляет файл, а рассчитывает на то, что это сделает ОС. Никто с этим не сталкивался? |
|
|
ViGOur |
![]()
Сообщение
#2
|
![]() Мастер ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модератор Сообщений: 3296 Регистрация: 9.10.2007 Из: Москва Пользователь №: 4 Спасибо сказали: 231 раз(а) Репутация: ![]() ![]() ![]() |
Цитата(SABROG @ 16.5.2009, 22:38) Link но если приложение запускают прямо из сети Что значит прямо из сети?
|
|
|
SABROG |
![]()
Сообщение
#3
|
![]() Профессионал ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 1207 Регистрация: 8.12.2008 Из: Russia, Moscow Пользователь №: 446 Спасибо сказали: 229 раз(а) Репутация: ![]() ![]() ![]() |
Цитата(ViGOur @ 17.5.2009, 19:59) Link Цитата(SABROG @ 16.5.2009, 22:38) Link но если приложение запускают прямо из сети Что значит прямо из сети?Из папки, которая находится на другом компьютере в сети. Временные файлы при этом создаются в рабочей директории, т.е. сетевой. |
|
|
ViGOur |
![]()
Сообщение
#4
|
![]() Мастер ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модератор Сообщений: 3296 Регистрация: 9.10.2007 Из: Москва Пользователь №: 4 Спасибо сказали: 231 раз(а) Репутация: ![]() ![]() ![]() |
Мда, попробуй в ближайшее время. Честно говоря не встречался с таким.
В исходнках класса QTemporaryFile копался? Чтобы узнать почему он так себя ведет. |
|
|
Andrewshkovskii |
![]()
Сообщение
#5
|
Активный участник ![]() ![]() ![]() Группа: Участник Сообщений: 351 Регистрация: 27.12.2008 Пользователь №: 467 Спасибо сказали: 18 раз(а) Репутация: ![]() ![]() ![]() |
Глупо может, но... Если есть фиксированный список файлов, то удалить все "не нужные" файлики.нет?
|
|
|
SABROG |
![]()
Сообщение
#6
|
![]() Профессионал ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 1207 Регистрация: 8.12.2008 Из: Russia, Moscow Пользователь №: 446 Спасибо сказали: 229 раз(а) Репутация: ![]() ![]() ![]() |
Попробуйте такой код. Непонятно почему не удаляет (даже не в Active Directory):
Если поменять так, то файл удаляется.
Че за фигня, деструктор QTemporaryFile не вызывается при ctr+c или закрытии консольного окна через крестик? Сообщение отредактировал SABROG - 19.5.2009, 12:49
Прикрепленные файлы
|
|
|
kwisp |
![]()
Сообщение
#7
|
![]() астарожна ынтжинэр ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 1404 Регистрация: 26.11.2008 Из: ТаганрогРодинаЧехова Пользователь №: 435 Спасибо сказали: 113 раз(а) Репутация: ![]() ![]() ![]() |
SABROG,
думаю может это связанао с тем что не закрываешь файл - он открыт на момент закрытия приложения. может стоит попробовать закрыть файл. Цитата(SABROG @ 19.5.2009, 13:41) Link при ctr+c или закрытии консольного окна через крестик? может код возврата влияет на работу деструктра. ctrl+c выход принудительный срочный, если не ошибаюсь, он не ноль возвращает точно так же и крестик окна консолного приложения. ----- проверил так оно и есть. код возврата влияет. получается нужно найти возможность выходить по qApp->quit() -- наверное так. Сообщение отредактировал kwisp - 19.5.2009, 13:28 |
|
|
SABROG |
![]()
Сообщение
#8
|
![]() Профессионал ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 1207 Регистрация: 8.12.2008 Из: Russia, Moscow Пользователь №: 446 Спасибо сказали: 229 раз(а) Репутация: ![]() ![]() ![]() |
Цитата(kwisp @ 19.5.2009, 14:08) Link получается нужно найти возможность выходить по qApp->quit() -- наверное так. Это бесполезно. Программы крашатся, свет вырубается, роутеры зависают и т.д. По сути класс QTemporaryFile бесполезен. Нужно еще программу допиливать до того, чтобы при запуске проверялись временные файлы и удалялись к чертям. Или папку temp вместе с программой создавать, если она существует при запуске - килять нафиг. Проблема только в том, что некоторыми программами можно пользоваться раз в год и если временный файл на несколько гигов, то будет очень обидно. P.S.: close() никак не влияет Сообщение отредактировал SABROG - 19.5.2009, 13:54 |
|
|
kwisp |
![]()
Сообщение
#9
|
![]() астарожна ынтжинэр ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 1404 Регистрация: 26.11.2008 Из: ТаганрогРодинаЧехова Пользователь №: 435 Спасибо сказали: 113 раз(а) Репутация: ![]() ![]() ![]() |
Цитата(SABROG @ 19.5.2009, 14:54) Link P.S.: close() никак не влияет это проверил убдился. просто предположение было Цитата(SABROG @ 19.5.2009, 14:54) Link Это бесполезно. Программы крашатся, свет вырубается, роутеры зависают и т.д. ну что могу сказать, это мне кажется философский вопрос - нам тоже рекомендуют писать как можно защищенне от такого рода событий( на объекте женщина назовем её оператор на обучении сломала большим пальцем пробел на клаве после того как ей сказали "жми" ![]() я согласен что если задеть шнур ногой и этим вырубить питание либо сеть можно много косяков наблюдать. SABROG, а если файлы создавать в темповой папке которая раз в неделю или при перезапуске очищается? ну это уже к вопросу администрирования. тоже вариант. |
|
|
Litkevich Yuriy |
![]()
Сообщение
#10
|
![]() разработчик РЭА ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: ![]() ![]() ![]() |
Цитата(SABROG @ 19.5.2009, 16:41) Link деструктор QTemporaryFile не вызывается при ctr+c или закрытии консольного окна через крестик? она и будет валится, т.к. Qt необрабатывает события завершения консольного приложения.Я об этом уже тему заводил (уже забыл какую) |
|
|
![]() ![]() ![]() |
![]() |
|
Текстовая версия | Сейчас: 2.8.2025, 3:48 |