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

[C++][fstream] Otwieranie wszystkich plików z danego katalogu

Ostatnio zmodyfikowano 2015-09-16 16:17
Autor Wiadomość
loop
Temat założony przez niniejszego użytkownika
[C++][fstream] Otwieranie wszystkich plików z danego katalogu
» 2015-09-15 22:32:06
Witam,

Istnieje możliwość aby w bibliotece fstream otworzyć wszystkie pliki z danego katalogu po kolei?

Pozdrawiam
P-137549
carlosmay
» 2015-09-15 22:39:39
Tak: otwierasz plik, odczytujesz dane lub zapisujesz do zmiennych i zamykasz plik.
Następny bierzesz na warsztat.
P-137550
Gibas11
» 2015-09-15 23:15:34
Chyba chodzi o otworzenie wszystkich po kolei bez znajomości ich nazw. :P Sam kiedyś się z tym męczyłem, ale nie znalazłem pasującego mi rozwiązania i zrezygnowałem. Znalazłem to: http://forums.devarticles.com​/c-c-help-52​/c-opening-all-txt-files-in-a-folder-one-by-150745.html, może cię zainteresować post #3.
P-137551
Szadziu
» 2015-09-16 08:21:17
Poczytaj o bibliotece dirent: http://cpp0x.pl/artykuly/?id=53
Zwróci ci wskaźniki czy tam ścieżki do kolejnych plików. Możesz je otworzyć fstreamem
P-137555
tixer
» 2015-09-16 15:39:54
Ja poradziłem sobie z tym za pomocą ls /home/>plikiwkatalogu.txt pierwszą nazwę odrzucasz, bo prawdopodobnie będzie to pusty wiersz.
P-137568
mateczek
jeśli Biblioteka Qt jest w zasięgu Twojego zainteresownia to polecam klasę QDir
» 2015-09-16 16:17:35
A jeśli nie to może ktoś poleci podobne klasy z biblioteki standardowej lub z biblioteki boost. Z reguły(choć nie zawsze) te biblioteki dublują się funkcjonalnością.

http://doc.qt.io/qt-4.8/qdir.html#entryInfoList-2

C/C++
#include <QDir>
#include <iostream>

int main( int argc, char * argv[] )
{
    QCoreApplication app( argc, argv );
    QDir dir;
    dir.setFilter( QDir::Files | QDir::Hidden | QDir::NoSymLinks );
    dir.setSorting( QDir::Size | QDir::Reversed );
   
    QFileInfoList list = dir.entryInfoList(); // uzyskaj listę plików w katalogu
    //ja bym napisał tą deklarację tak:
    //const QFileInfoList &list = dir.entryInfoList();
    std::cout << "     Bytes Filename" << std::endl;
    for( int i = 0; i < list.size(); ++i ) {
        QFileInfo fileInfo = list.at( i );
        std::cout << qPrintable( QString( "%1 %2" ).arg( fileInfo.size(), 10 )
        .arg( fileInfo.fileName() ) );
        std::cout << std::endl;
    }
    return 0;
}
to jest kawałek kodu który jest na stronie wyżej. Tam są krótkie przykłady !!!
P-137571
« 1 »
  Strona 1 z 1