Угадай кто в буфере сидит - файл или папка?

Тема в разделе "WASM.BEGINNERS", создана пользователем TOLSTOPUZ, 3 май 2008.

  1. TOLSTOPUZ

    TOLSTOPUZ New Member

    Публикаций:
    0
    Регистрация:
    26 апр 2008
    Сообщения:
    509
    Вот что у меня за беда...

    Использую диалог открытия файла.
    Короче, выбрал файл и из эдитбокса помещаю его в буфер

    Но потом мне нужно определить, что я туда поместил - файл или папку?
    (Т.к. из диалога можно же выбрать и файл и папку...)

    так вот, в буфере полный адрес папки или файла.
    Как же определить, что там - файл или папка?

    После долгих раздумий я пошёл таким путём:

    Начинаю побайтно читать с конца буфер, и искать 2 символа,
    или точку, или обратный слеш.
    Если первой нахожу точку - то это файл.
    А если первым попадается слеш - это ессно папка...

    Но при тестировании позже проявилась моя промашка.
    бывают файлы вообще без расширения. Система такие называет просто "файл", знаете, да?
    Так вот, моя программа определяет этот файл как папку.
    Что естественно - при моём методе
    первым там обнаруживается обратный слеш, так как точка там отсутствует...

    Есть ли способ определить что там - файл или папка?

    ЗюЫю
    Где-то когда то я видел нечто такое..
    .
    cmp eax, FILE_ATRIBUTE_DIRECTORY

    или

    and eax, FILE_ATRIBUTE_DIRECTORY

    Кто нить подскажет, есть такое?

    С ув. Толстопуз!
     
  2. x0man

    x0man New Member

    Публикаций:
    0
    Регистрация:
    23 мар 2008
    Сообщения:
    358
    Код (Text):
    1.     push szFileNameOffset
    2.     call GetFileAttributes
    3.     cmp eax, -1
    4.     je @skip
    5.     test eax, FILE_ATTRIBUTE_DIRECTORY
    6.     je @skip
    7.       ; эт вроде как тут директория...
    8.       ; делай чего хочешь...
    9.       push 0
    10.       push 0
    11.       push 0
    12.       push 0
    13.       call MessageBoxA
    14.     @skip:
    попробуй чтото в этом роде...
     
  3. Com[e]r

    Com[e]r Com[e]r

    Публикаций:
    0
    Регистрация:
    20 апр 2007
    Сообщения:
    2.624
    Адрес:
    ого..
    метод выше короче)