Ищу Api Функцию

Тема в разделе "Операционные системы", создана пользователем Vitiay, 16 июн 2006.

Статус темы:
Закрыта.
  1. Vitiay

    Vitiay Гость

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

    zubr Гость

    Репутация:
    0
    Код в студию.
     
  3. Vitiay

    Vitiay Гость

    Репутация:
    0
    Виноват!
    Код не напишу (так много лишнего) .
    Но суть такая.
    Есть такие функции
    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 --------
     
  4. grigsoft

    grigsoft Well-Known Member

    Репутация:
    0
    Регистрация:
    15 ноя 2005
    Сообщения:
    735
    Симпатии:
    0
    Вот цитировать сюда MSDN необязательно - все могут найти сами, хотите помочь - дайте ссылку на топик, он весь есть в сети.

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

    Vitiay Гость

    Репутация:
    0
    складываются все атрибуты или нет? Вроде же Normal используется только 1, тогда как понять файл это или папка?
     
  6. Little Friend

    Little Friend Гость

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

    Vitiay Гость

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

    grigsoft Well-Known Member

    Репутация:
    0
    Регистрация:
    15 ноя 2005
    Сообщения:
    735
    Симпатии:
    0
    FILE_ATTRIBUTE_DIRECTORY - единственное что отличает каталог от файла. Все остальное - твои измышления.
     
  9. Vitiay

    Vitiay Гость

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

    Kmet Well-Known Member
    Java Team

    Репутация:
    0
    Регистрация:
    25 май 2006
    Сообщения:
    1.036
    Симпатии:
    8
    X&FILE_ATTRIBUTE_DIRECTORY>0 то папка
    в случае с паскалевским сиyтаксисом будет что то вроде (X and FILE_ATTRIBUTE_DIRECTORY)>0
     
Загрузка...
Статус темы:
Закрыта.

Поделиться этой страницей