Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

Sprawdzanie czy folder jest normalnym folderem

Ostatnio zmodyfikowano 2016-09-20 14:06
Autor Wiadomość
Cansisti
Temat założony przez niniejszego użytkownika
Sprawdzanie czy folder jest normalnym folderem
» 2016-09-19 22:20:50
Używam takiej instrukcji żeby otrzymać wszystkie pliki i foldery w podanej ścieżce:
C/C++
DIR * dir;
dirent * pdir;
vector < string > files;
if( !IsDirectory( path ) ) return files;

dir = opendir( path.c_str() );

while(( pdir = readdir( dir ) ) ) {
    files.push_back( pdir->d_name );
}
Dostaję mniej więcej taką listę:

C:/Users/Tomasz/Documents/Adobe
C:/Users/Tomasz/Documents/Blender
C:/Users/Tomasz/Documents/desktop.ini
C:/Users/Tomasz/Documents/Logs
C:/Users/Tomasz/Documents/Moja muzyka
C:/Users/Tomasz/Documents/Moje obrazy
C:/Users/Tomasz/Documents/Moje wideo
C:/Users/Tomasz/Documents/netscan.xml
C:/Users/Tomasz/Documents/Notes
C:/Users/Tomasz/Documents/RegBUp

Problem w tym, że

C:/Users/Tomasz/Documents/Moja muzyka
C:/Users/Tomasz/Documents/Moje obrazy
C:/Users/Tomasz/Documents/Moje wideo
Nie są faktycznymi folderami, przez co program później wywala błąd.
Da się jakoś sprawdzić wcześniej, czy podana ścieżka jest prawdziwym folderem? (A nie wymysłem Windowsa?)
P-151850
pekfos
» 2016-09-19 22:40:19
A co na to IsDirectory(), albo pdir->d_type, jeśli jest?
P-151853
Cansisti
Temat założony przez niniejszego użytkownika
» 2016-09-20 14:06:54
IsDirectory() zwracało true, ale zmodyfikowałem funkcję tak, żeby poza sprawdzaniem czy folder istnieje próbowała go jeszcze odczytać - teraz poprawnie rozpoznaje foldery.
P-151872
« 1 »
  Strona 1 z 1