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

[C++] Listowanie zawartości katalogu - FindFirstFile pomija jeden plik

Ostatnio zmodyfikowano 2013-10-08 23:15
Autor Wiadomość
adi456
Temat założony przez niniejszego użytkownika
[C++] Listowanie zawartości katalogu - FindFirstFile pomija jeden plik
» 2013-10-03 13:25:24
Witam, mam problem z listingiem plików, 1 plik txt zawsze pomija i 1 plik txt zawsze nadpisuje przy sprawdzaniu czy istnieje

C/C++
string sciezka = "C:\\Program Files\\Nokia\\Phoenix\\_!_LOG\\";
string szukaj_plikow = sciezka + "*.txt";

HANDLE hfile = FindFirstFile( TEXT( szukaj_plikow.c_str() ), & File_Data );
while( FindNextFile( hfile, & File_Data ) )
{
    //wcout<<File_Data.cFileName<<endl
   
    string file = File_Data.cFileName;
    string sciezka_open = sciezka + file;
   
    HINTERNET hTransfer = FtpOpenFile( IntFTP, file.c_str(), GENERIC_READ, FTP_TRANSFER_TYPE_BINARY, 0 );
    if( !hTransfer )
    {
        cout << "brak pliku na ftp " << file << "\n";
        if( FtpPutFile( IntFTP, sciezka_open.c_str(), file.c_str(), INTERNET_FLAG_TRANSFER_BINARY, FALSE ) ) {
            cout << "Plik zapisany." << file << "\n\n";
        } else {
            cout << "Nie mozna wyslac pliku " << file << "\n\n";
        }
    } else {
        cout << "plik juz istnieje " << file << "\n\n";
    };
    InternetCloseHandle( hTransfer );
}
FindClose( hfile );


dodałem przed pętlą i wczytuje 1 plik tylko dalej nie wiem dlaczego przy sprawdzaniu plików na ftp cały czas nadpisuje 1 plik

C/C++
FindFirstFile( TEXT( szukaj_plikow.c_str() ), & File_Data );
string file = File_Data.cFileName;
string sciezka_open = sciezka + file;
HINTERNET hTransfer = FtpOpenFile( IntFTP, file.c_str(), GENERIC_READ, FTP_TRANSFER_TYPE_BINARY, 0 );
if( !hTransfer )
{
    cout << "brak pliku na ftp " << file << "\n";
    if( FtpPutFile( IntFTP, sciezka_open.c_str(), file.c_str(), INTERNET_FLAG_TRANSFER_BINARY, FALSE ) ) {
        cout << "Plik zapisany." << file << "\n\n";
    } else {
        cout << "Nie mozna wyslac pliku " << file << "\n\n";
    }
} else {
    cout << "plik juz istnieje " << file << "\n\n";
};
InternetCloseHandle( hTransfer );
P-93051
DejaVu
» 2013-10-08 23:15:32
Działa zgodnie z tym co zaprogramowałeś.

http://vcpptips.wordpress.com​/tag/findfirstfile/

Popatrz sobie jak poprawnie używać FindFirstFile/FindNextFile. FindFirstFile zwraca Ci pierwszy plik, FindNextFile przechodzi już do kolejnego pliku, gubiąc ten, który otrzymałeś z FindFirstFile.
P-93390
« 1 »
  Strona 1 z 1