Ищу Api Функцию

  • Автор темы Vitiay
  • Дата начала
Статус
Закрыто для дальнейших ответов.
V

Vitiay

#1
Привет Вам!
Спасибо что зашли!
Кратко: пишу прогу на с++. По сути поиск файлов. Но Есть нуанс. Если вы знаете, то в Total Commandere ЕСТЬ ОПЦИЯ Show system/hidden files. При этом, при посике файлов если опция включена, то ищет все, а если нет - то без системных и скрытых. У меня такая же проблема. Моя прога не "видит" системные и скрытые. То ли нет доступа, то ли приоритета к ресурсам, то ли хз. Может есть какая-то API функция, которая помогает решить эту проблему(ведь в Commandere она решена). Если знаете, помогите плз.
 
V

Vitiay

#3
Виноват!
Код не напишу (так много лишнего) .
Но суть такая.
Есть такие функции
FindFirstFile, FindNextFile.
Как обычно параметры : HANDLE и самое важное WIN32_FIND_DATA
Этот WIN32_FIND_DATA содердит атрибуты того на что указывает HANDLE. В часности там есть параметры, скрытый ли объект (вообще говоря, жто может быть и файл и папка), системный Вообщем примерно изображено в конце (см. Ниже)
Но я так понял, что атрибуты складываются.
По моему получилось
Файл: 0x20<=X<0x40
0x60<=X<0x80
0xA0<=X
Директория:
X<0x20
0x40<=X<0x60
0x90<=X<0xA0
Однако в папке Windows некоторые поддиректории имеют атрибут 0x812. Может я некоторые атрибуты не так нашел? (некотрые из них в MSDN есть, а в с++ пишет ошибку(vc++6.0))
Есть Идеи?
Всегда рад узнать их!!!!!





цитата из MSDN

---- censored --------
 

grigsoft

Well-known member
15.11.2005
735
0
#4
Вот цитировать сюда MSDN необязательно - все могут найти сами, хотите помочь - дайте ссылку на топик, он весь есть в сети.

По теме - FindFirstFile и прочие всегда возвращают все файлы, включая и спрятанные. Почитайте про битовую арифметику, операции & | и прочее, тогда не будет вопросов по поводу получения и проверки значений атрибутов.
 
V

Vitiay

#6
складываются все атрибуты или нет? Вроде же Normal используется только 1, тогда как понять файл это или папка?
 
L

Little Friend

#7
А ты не задумывался что у файла может быть несколько атрибутов? Скрытая папка, например. Или скрытый файл, доступный только для чтения. В общем, как тебе уже говорили, использую битовую арифметику.
 
V

Vitiay

#8
Вот и я про тоже. Но нашел папку с атрибутом 0x30 получается он Directory (0x10) и archived (0x20). А achived - атрибут файла как я понимаю.
P.S.: ведь атрибуты складывают (не XOR, как я понимаю)
 

grigsoft

Well-known member
15.11.2005
735
0
#9
FILE_ATTRIBUTE_DIRECTORY - единственное что отличает каталог от файла. Все остальное - твои измышления.
 
V

Vitiay

#10
Спс за ответ.
Я так понял, что если атрибут X, то X (mod 20)>=10 - папка
X (mod 20)<10 - файл
 

Kmet

Java Team
25.05.2006
1 036
8
#11
X&FILE_ATTRIBUTE_DIRECTORY>0 то папка
в случае с паскалевским сиyтаксисом будет что то вроде (X and FILE_ATTRIBUTE_DIRECTORY)>0
 
Статус
Закрыто для дальнейших ответов.