Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Как средствами QT скрыть файл?
Форум на CrossPlatform.RU > Библиотеки > Qt > Qt Ввод/Вывод, Сеть. Межпроцессное взаимодействие
Rocky
или целую папку...
Кто-нибудь пробовал это делать? Я так и не понял, позволяет ли QT это делать...
panter_dsd
А при чем тут Qt? Только API конкретной системы.
Litkevich Yuriy
Rocky, в Линухе, например, вообще нет такого атрибута у файла/каталога
Elfinit
А QFileInfo::isHidden в линуксе что говорит? Всегда false?
BRE
Цитата(Litkevich Yuriy @ 20.11.2009, 10:37) *
Rocky, в Линухе, например, вообще нет такого атрибута у файла/каталога

У linux есть скрытые файлы у которых точка в начале имени.

Цитата
А QFileInfo::isHidden в линуксе что говорит? Всегда false?

Для таких файлов true.
Litkevich Yuriy
Цитата(BRE @ 20.11.2009, 14:22) *
У linux есть скрытые файлы у которых точка в начале имени.
это особенность поведения файлового менеджера. Дело в том, что нельзя просто поставить точку в переди или убрать её, имя файла при этом меняется.
если где-то обращение содержало путь:
/foo/.bar/myfile
то убрав точку перед bar, мы уже не можем обращаться по старому пути - его больше нет.

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

Под линуксом пока не знаю ничего о подобном...
Rocky
Гы... все буквы куда-то разлетелись... :)

Просто я хотел сделать скрытой папку с логами.. чтобы пользователь не мог ее взять и удалить. В линухах все решается проще: установкой владельца директория. А вот в винде боюсь так не сделать... Поэтому решил скрыть. Вобщем, только winAPI юзать.. ясно..
Цитата
ловить вызов функций получения файлов или папок и если в перечислении попадается файл или папка, которые ты хочешь скрыть, пропускать их и отдавать следующий за ним файл или папку

не, все проще, есть папка logs внутри которой генерится куча html файлов с логами. С хуками кстати вариант..давно не занимался ничем таким.. Интересно, если происходит удаление файла через командную строку, прога, ставящая хук на удаление тоже выявит это? Тогда надо будет сделать чтобы сам резидент был неубиваем... :)

оффтоп
В линухах имя файла меняется.. это да... но есть такая вещь как хард-линки... Если память не изменяет ;)
Elfinit
Цитата(Rocky @ 20.11.2009, 21:42) *
Просто я хотел сделать скрытой папку с логами.. чтобы пользователь не мог ее взять и удалить.

Так кинь её по адресу getenv("APPDATA") + "/" + appname или getenv("TEMP") + "/" + appname или getenv("TMPDIR") "/" + appname (в линухе я кидаю в getenv("HOME") + "/" + appname). Вряд ли пользователь будет там регулярно сидеть и скурпулёзно удалять)
Rocky
Кстати неплохая идея )) Чет мне в голову не пришло это )))
Elfinit
Всегда пожалуйста)
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Форум IP.Board © 2001-2021 IPS, Inc.