Różnice między wybraną wersją a wersją aktualną.
Both sides previous revision Previous revision Next revision | Previous revision | ||
filesystem [2008/04/16 23:05] michal.wasiak |
filesystem [2008/04/16 23:31] (aktualna) michal.wasiak |
||
---|---|---|---|
Linia 1: | Linia 1: | ||
====== Biblioteka boost::filesystem ====== | ====== Biblioteka boost::filesystem ====== | ||
- | __wersja robocza__ | + | **Michał Wasiak, //G1ISI//** |
===== Wstęp ===== | ===== Wstęp ===== | ||
Biblioteka boost::filesystem wprowadza przenośne udogodnienia w zarządzaniu ścieżkami dostępu do katalogów i plików. | Biblioteka boost::filesystem wprowadza przenośne udogodnienia w zarządzaniu ścieżkami dostępu do katalogów i plików. | ||
Linia 65: | Linia 66: | ||
Funkcja najpierw sprawdza czy podana ścieżka w //path_dir// istnieje i jest katalogiem. Później tworzy obiekt //directory_iterator// podając ściężkę do konstruktora. Pętla iteruje po wszystkich elementach katalogu i dla każdego napotkanego podkatalogu wywołuje rekursywnie funkcję szukającą. Każdy rozpoznany plik jest porównywany co do nazwy z paramatrem //file_name// i jeśli znaleziony zostanie plik o podanej nazwie to do //path_found// kopiowana jest scieżka do tego pliku i zwracana jest wartość 'true'. Jeśli nic nie zostanie znalezione to zwrcana jest wartość 'false'. | Funkcja najpierw sprawdza czy podana ścieżka w //path_dir// istnieje i jest katalogiem. Później tworzy obiekt //directory_iterator// podając ściężkę do konstruktora. Pętla iteruje po wszystkich elementach katalogu i dla każdego napotkanego podkatalogu wywołuje rekursywnie funkcję szukającą. Każdy rozpoznany plik jest porównywany co do nazwy z paramatrem //file_name// i jeśli znaleziony zostanie plik o podanej nazwie to do //path_found// kopiowana jest scieżka do tego pliku i zwracana jest wartość 'true'. Jeśli nic nie zostanie znalezione to zwrcana jest wartość 'false'. | ||
- | ===== Gramatyka? ===== | + | |
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | ===== Formaty ścieżek ===== | ||
+ | Są dwa formaty łańcuchów opisujących ścieżkę dostępu: | ||
+ | * Przenośny format opisany przez POSIX; | ||
+ | * Natywny format ścieżki dostępu definiowany przez system operacyjny. Przykłady:\\ //OpenVMS:// ''"SYS1::DISK1:[DANE.FILMY]"''\\ //Windows:// ''"c:\dane\filmy"'' | ||
Linia 105: | Linia 117: | ||
template <class Path> typename Path::string_type extension(const Path & p); | template <class Path> typename Path::string_type extension(const Path & p); | ||
</code> | </code> | ||
- | Funkcja zwracająca rozszerzenie pliku. Jeśli ''p.leaf()'' zawiera kropkę, to funkcja zwraca podciąg z ''p.leaf()'' zaczynający się od ostatniej kropki aż do ostatniego znaku nazwy. W przeciwnym razie wypadku zwraca pusty łańcuch. | + | Funkcja zwracająca rozszerzenie pliku. Jeśli ''p.leaf()'' zawiera kropkę, to funkcja zwraca podciąg z ''p.leaf()'' od ostatniej kropki aż do ostatniego znaku nazwy. W przeciwnym razie zwraca pusty łańcuch. |
<code cpp> | <code cpp> | ||
template <class Path> typename Path::string_type basename(const Path & p); | template <class Path> typename Path::string_type basename(const Path & p); | ||
</code> | </code> | ||
- | Funkcja zwracająca nazwę pliku bez rozszerzenia. Jeśli ''p.leaf()'' zawiera kropkę, to funkcja zwraca podciąg z ''p.leaf()'' zaczynający się od początku nazwy do ostatniej kropki (kropka nie jest zawarta). W przeciwnym wypadku zwraca ''p.leaf()''.<code cpp> | + | Funkcja zwracająca nazwę pliku bez rozszerzenia. Jeśli ''p.leaf()'' zawiera kropkę, to funkcja zwraca podciąg z ''p.leaf()'' od początku nazwy do ostatniej kropki (kropka nie jest zawarta). W przeciwnym wypadku zwraca ''p.leaf()''. |
+ | <code cpp> | ||
template <class Path> Path replace_extension(const Path & p, const typename Path::string_type & new_extension); | template <class Path> Path replace_extension(const Path & p, const typename Path::string_type & new_extension); | ||
</code> | </code> |