Как средствами QT скрыть файл? |
Здравствуйте, гость ( Вход | Регистрация )
Как средствами QT скрыть файл? |
Rocky |
19.11.2009, 23:24
Сообщение
#1
|
Старейший участник Группа: Участник Сообщений: 530 Регистрация: 22.12.2008 Из: Санкт-Петербург Пользователь №: 463 Спасибо сказали: 22 раз(а) Репутация: 7 |
или целую папку...
Кто-нибудь пробовал это делать? Я так и не понял, позволяет ли QT это делать... Сообщение отредактировал Rocky - 19.11.2009, 23:24 |
|
|
panter_dsd |
20.11.2009, 7:17
Сообщение
#2
|
Жаждущий знаний Группа: Участник Сообщений: 254 Регистрация: 1.1.2009 Из: Санкт-Петербург Пользователь №: 474 Спасибо сказали: 32 раз(а) Репутация: 3 |
А при чем тут Qt? Только API конкретной системы.
|
|
|
Litkevich Yuriy |
20.11.2009, 10:37
Сообщение
#3
|
разработчик РЭА Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94 |
Rocky, в Линухе, например, вообще нет такого атрибута у файла/каталога
|
|
|
Elfinit |
20.11.2009, 11:13
Сообщение
#4
|
Участник Группа: Участник Сообщений: 127 Регистрация: 17.3.2009 Из: Казань Пользователь №: 619 Спасибо сказали: 7 раз(а) Репутация: 1 |
А QFileInfo::isHidden в линуксе что говорит? Всегда false?
|
|
|
BRE |
20.11.2009, 11:22
Сообщение
#5
|
Профессионал Группа: Участник Сообщений: 1112 Регистрация: 6.3.2009 Из: Ростов-на-Дону Пользователь №: 591 Спасибо сказали: 264 раз(а) Репутация: 44 |
Rocky, в Линухе, например, вообще нет такого атрибута у файла/каталога У linux есть скрытые файлы у которых точка в начале имени. Цитата А QFileInfo::isHidden в линуксе что говорит? Всегда false? Для таких файлов true. Сообщение отредактировал BRE - 20.11.2009, 11:24 |
|
|
Litkevich Yuriy |
20.11.2009, 11:30
Сообщение
#6
|
разработчик РЭА Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94 |
У linux есть скрытые файлы у которых точка в начале имени. это особенность поведения файлового менеджера. Дело в том, что нельзя просто поставить точку в переди или убрать её, имя файла при этом меняется.если где-то обращение содержало путь: /foo/.bar/myfile то убрав точку перед bar, мы уже не можем обращаться по старому пути - его больше нет. В виндовозе мы можем менять этот атрибут (скрытости) не влияя на путь |
|
|
ViGOur |
20.11.2009, 11:53
Сообщение
#7
|
Мастер Группа: Модератор Сообщений: 3296 Регистрация: 9.10.2007 Из: Москва Пользователь №: 4 Спасибо сказали: 231 раз(а) Репутация: 40 |
Как уже было сказано, это нужно использовать API целевой системы.
Под виндовсом есть такие штуки как хуки - перехват вызова функций, даже если это функции вызываются не в твоем процессе и не тобой. В твоем случае нужно просто ловить вызов функций получения файлов или папок и если в перечислении попадается файл или папка, которые ты хочешь скрыть, пропускать их и отдавать следующий за ним файл или папку. Под линуксом пока не знаю ничего о подобном... |
|
|
Rocky |
20.11.2009, 21:42
Сообщение
#8
|
Старейший участник Группа: Участник Сообщений: 530 Регистрация: 22.12.2008 Из: Санкт-Петербург Пользователь №: 463 Спасибо сказали: 22 раз(а) Репутация: 7 |
Гы... все буквы куда-то разлетелись...
Просто я хотел сделать скрытой папку с логами.. чтобы пользователь не мог ее взять и удалить. В линухах все решается проще: установкой владельца директория. А вот в винде боюсь так не сделать... Поэтому решил скрыть. Вобщем, только winAPI юзать.. ясно.. Цитата ловить вызов функций получения файлов или папок и если в перечислении попадается файл или папка, которые ты хочешь скрыть, пропускать их и отдавать следующий за ним файл или папку не, все проще, есть папка logs внутри которой генерится куча html файлов с логами. С хуками кстати вариант..давно не занимался ничем таким.. Интересно, если происходит удаление файла через командную строку, прога, ставящая хук на удаление тоже выявит это? Тогда надо будет сделать чтобы сам резидент был неубиваем... оффтоп В линухах имя файла меняется.. это да... но есть такая вещь как хард-линки... Если память не изменяет Сообщение отредактировал Rocky - 20.11.2009, 21:46 |
|
|
Elfinit |
20.11.2009, 22:39
Сообщение
#9
|
Участник Группа: Участник Сообщений: 127 Регистрация: 17.3.2009 Из: Казань Пользователь №: 619 Спасибо сказали: 7 раз(а) Репутация: 1 |
Просто я хотел сделать скрытой папку с логами.. чтобы пользователь не мог ее взять и удалить. Так кинь её по адресу getenv("APPDATA") + "/" + appname или getenv("TEMP") + "/" + appname или getenv("TMPDIR") "/" + appname (в линухе я кидаю в getenv("HOME") + "/" + appname). Вряд ли пользователь будет там регулярно сидеть и скурпулёзно удалять) |
|
|
Rocky |
20.11.2009, 23:05
Сообщение
#10
|
Старейший участник Группа: Участник Сообщений: 530 Регистрация: 22.12.2008 Из: Санкт-Петербург Пользователь №: 463 Спасибо сказали: 22 раз(а) Репутация: 7 |
Кстати неплохая идея )) Чет мне в голову не пришло это )))
|
|
|
Текстовая версия | Сейчас: 27.12.2024, 11:01 |