Wyszukiwanie pliku na dysku
Ostatnio zmodyfikowano 2016-12-21 01:35
piotrw97 Temat założony przez niniejszego użytkownika |
Wyszukiwanie pliku na dysku » 2016-12-15 01:25:21 Witajcie! Ja już nie mam siły, szukałem, szukałem, próbowałem i nic... Jak nie problem z kodem to z nazwą pliku. Otóż chciałbym zrobić program w c++ , który wyszukuje plik o nazwie (tylko chodzi mi na przykład o nazwę z myślnikiem np.: admin-1) i podaje mi obojętnie czy w pliku nowo utworzonym czy w konsoli ścieżkę do tego pliku.
Naprawdę dużo szukałem próbowałem ale nie mogę uporać się z tym problemem :c Pomóżcie :C
|
|
skovv |
» 2016-12-15 03:05:27 W google poszukaj biblioteki do wyszukiwania folderów/plików w danym kataolu. Każdy znaleziony folder otwieraj i dalej szukaj.. |
|
darko202 |
» 2016-12-15 11:31:20 |
|
carlosmay |
» 2016-12-15 15:05:34 |
|
mokrowski |
» 2016-12-15 23:00:21 W przykładzie wyszukuje wszystkich plików z literą 's' w katalogu '/tmp'. Kompilować z użyciem boost_filesystem oraz kompilatorem C++11 #include <vector> #include <iostream> #include <regex> #include <boost/filesystem.hpp>
using namespace std;
std::vector < boost::filesystem::path > find_in_directory( const boost::filesystem::path & file_path, const std::regex & pattern ) { using namespace boost::filesystem; using std::vector; vector < path > result; boost::system::error_code error_code; if( not is_directory( file_path ) ) { return result; } for( recursive_directory_iterator it( file_path, error_code ), end_it; it != end_it; it.increment( error_code ) ) { if( error_code ) { it.pop(); continue; } if( not is_directory( it->path() ) ) { if( regex_match( it->path().filename().string(), pattern ) ) result.push_back( it->path() ); } } return result; }
int main() { boost::filesystem::path path( "/tmp" ); auto vec = find_in_directory( path, regex( "s.*" ) ); for( const auto & v: vec ) { cout << v << endl; } }
|
|
piotrw97 Temat założony przez niniejszego użytkownika |
» 2016-12-16 12:25:36 Wielkie dzięki mokrowski, jeszcze tylko mam problem z instalacją boosta pod code blocka na windowsie :/ Ktoś może pomóc ? |
|
mokrowski |
» 2016-12-16 12:48:03 Sprawdź co masz w nagłówkach <experimental/*> swojego kompilatora. Tam możesz mieć filesystem. Wtedy nie będzie konieczny boost. To jest nowość która pojawi się w C++17. clang 3.9, VS 2015, gcc 6.2 już ma. |
|
piotrw97 Temat założony przez niniejszego użytkownika |
» 2016-12-16 14:07:03 Chyba nie wiem jak to sprawdzić :/ |
|
« 1 » 2 3 4 |