извлечение директории из path

Discussion in 'WASM.BEGINNERS' started by e4key, Sep 21, 2009.

  1. e4key

    e4key New Member

    Blog Posts:
    0
    Joined:
    Jul 28, 2009
    Messages:
    101
    а как собственно можно извлечь директорию файла из пути до него? например, есть C:\hello\hello.exe и мне нужно получить только C:\hello. winapi функции такой не нашел =(
     
  2. Mankubus

    Mankubus New Member

    Blog Posts:
    0
    Joined:
    Aug 14, 2009
    Messages:
    76
    отсекать все, начиная с последнего символа "\"
     
  3. InsidE

    InsidE Member

    Blog Posts:
    0
    Joined:
    May 28, 2009
    Messages:
    357
    Location:
    Over the hills and far away...
    ну сам подумай...ладно вот тебе алгоритм за 5 минут :)

    ищешь с конца позицию первого слэша и удаляешь все что после него,поиск можно легко реализовать через scasb.

    вот пример функции вовзращающей имя файла,функция вовзращает подкорректированный указатель на путь к файлу,ее легко переделать под твою задачу.

    Code (Text):
    1. GetNameFromPath proc uses edi pszName:DWORD
    2.    
    3.     invoke lstrlen,pszName
    4.     mov ecx,eax
    5.    
    6.     mov edi,pszName
    7.     add edi,ecx     ;go to the end of string
    8.     mov al,'\'      ;search for slash
    9.     std         ;form end to the begin ( DF = 1 )
    10.     repnz scasb     ;search for slash
    11.     cld         ;restore DF ( = 0 )
    12.     mov eax,edi
    13.     add eax,2       ;correct pointer
    14.  
    15. ret
    16. GetNameFromPath endp
     
  4. e4key

    e4key New Member

    Blog Posts:
    0
    Joined:
    Jul 28, 2009
    Messages:
    101
    спасибо :)
     
  5. InsidE

    InsidE Member

    Blog Posts:
    0
    Joined:
    May 28, 2009
    Messages:
    357
    Location:
    Over the hills and far away...
    перового встретившегося*
     
  6. kero

    kero Модератор SOURCES & 2LZ Staff Member

    Blog Posts:
    0
    Joined:
    Apr 4, 2006
    Messages:
    1,074
    Location:
    Москва
    e4key
    А лень самому, так shlwapi.
     
  7. shoo

    shoo New Member

    Blog Posts:
    0
    Joined:
    Jul 17, 2003
    Messages:
    1,537
    Location:
    Ukraine
    причем надо проверять как на прямой, так и на обратный слэш