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

Wyszukiwanie pliku na dysku

Ostatnio zmodyfikowano 2016-12-21 01:35
Autor Wiadomość
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
P-154957
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..
P-154959
darko202
» 2016-12-15 11:31:20
1.
zapoznaj się z technika debugowania kodu

2.
spojrzyj na
http://4programmers.net/C/FAQ​/Wy%C5%9Bwietlanie_listy_plik%C3%B3w_z_katalogu
https://msdn.microsoft.com​/pl-pl/library/t49t9ds1.aspx
http://cpp0x.pl/artykuly/?id=53



string[] filePaths = Directory.GetFiles(@"c:\Dir\");

Path.GetFileName(ścieżka) ///zwraca nazwę pliku ze ścieżki.

jeśli to za mało to szukaj "wyrażenia regularne", ale one to chyba z biblioteką boost

3.
napisz dokładnie z czym mas problem ?

P-154965
carlosmay
» 2016-12-15 15:05:34
jeśli to za mało to szukaj "wyrażenia regularne", ale one to chyba z biblioteką boost
<regex> cpluscplu
<regex> cppreference
P-154977
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
C/C++
#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;
    }
}
P-155022
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 ?
P-155041
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.
P-155043
piotrw97
Temat założony przez niniejszego użytkownika
» 2016-12-16 14:07:03
Chyba nie wiem jak to sprawdzić :/
P-155045
« 1 » 2 3 4
  Strona 1 z 4 Następna strona