Tworzenie nowego folderu
Ostatnio zmodyfikowano 2012-06-18 20:20
kubawal Temat założony przez niniejszego użytkownika |
Tworzenie nowego folderu » 2012-06-18 16:53:49 Witam! Ciekawi mnie, jak można przy tworzeniu pliku utworzyć nowy folder? Za pomocą fstream można utworzyć pliki tylko w istniejących folderach. |
|
xevuel |
» 2012-06-18 16:57:27 |
|
pekfos |
» 2012-06-18 16:57:56 mkdir() z POSIX, CreateDirectory() z WinAPI, itd. |
|
Admixior |
» 2012-06-18 20:20:35 Kiedyś napisałem takie 2 funkcje rozwiązujące ten problem. Cofają się one w katalogach dopóki nie będzie istniejącego odpowiedniego, po czym tworzy wszystkie potrzebne żeby utworzyć plik. Funkcja "utwórz_ścieżkę" tworzy wszystkie katalogi które są potrzebne żeby mogło się coś znaleźć(CreateDirectory). Funkcja "utwórz_plik_zapisu" tworzy plik we właściwym katalogu wywołując jak będzie potrzebna funkcje utwórz ścieżkę. int utworz_sciezke( string dest ) { SetLastError( 0 ); CreateDirectoryA( dest.c_str(), 0 ); if( GetLastError() != 0 ) { if( GetLastError() == 3 ) { if( utworz_sciezke( dest.substr( 0, dest.find_last_of( '\\' ) ) ) == 0 ) { CreateDirectoryA( dest.c_str(), 0 ); return GetLastError(); } return GetLastError(); } else return GetLastError(); } else return 0; }
int utworz_plik_zapisu( ofstream & plik, string dest ) { plik.open( dest, ios::out | ios::binary ); if( !plik.good() ) { if( GetLastError() == 3 ) { SetLastError( 0 ); int err; if(( err = utworz_sciezke( dest.substr( 0, dest.find_last_of( '\\' ) ) ) ) != 0 ) return err; plik.open( dest, ios::out | ios::binary ); if( !plik.good() ) { return GetLastError(); } } else { return GetLastError(); } } return 0; }
|
|
« 1 » |