Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » VC++ / MFC » CFtpConnection::GetFile

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
31.01.2009, 15:00 Uhr
wulfgang



Moin, ich möchte ein Programm schreiben, das mit Hilfe von CFtpConnection::GetFile eine Textdatei vom FTP-Server holt und auf einem lokalen Rechner speichert. Ich weiß bei MSDN ist die Funktion erklärt. Ein kleines Beispiel wäre für mich aber hilfreicher. Wenn mir jemand eines geben könnte, wäre ich sehr froh.

Grüße
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
02.02.2009, 09:07 Uhr
wulfgang



Habe jetzt selber schon was gefunden. Leider funktioniert das noch nicht so ganz. Ich erhalte 4 Warnungen
Zitat:
warning C4129: 'g' : unrecognized character escape sequence


Zitat:
warning C4129: 'g' : unrecognized character escape sequenc


Zitat:
warning C4129: 'C' : unrecognized character escape sequence


Zitat:
warning C4129: 'T' : unrecognized character escape sequence


Die Warnungen beziehen sich auf die zeilen mit FindFile und Getfile.
Können die mein Problem auslösen? Wie kann ich diese beseitigen?

Während der Ausführung des Programms erhalte ich dann:
Zitat:
Debug Assertion Failed!
Program:....
File:f...




Code:
#include "StdAfx.h"
#include "transfer_textfile.h"
#include "windows.h"
#include <iostream>
#include "Connect.h"

using namespace std;

transfer_textfile::transfer_textfile(void)
{
    Connect();
    CFtpConnection* connection_pointer;
    connection_pointer=Connect::getLastConnection();
    CFtpFileFind finder(connection_pointer);
    try
    {
        BOOL bWorking = finder.FindFile(_T("server\ordner\ordner\bu.txt")); //Hier Warnungen
        if(bWorking)
            {
            
                BOOL bGot = connection_pointer->GetFile(_T("ordner\ordner\ordner\bu.txt"),_T("C:\ordner\TxtTransfer")); //Hier Warnungen
            }
            else
                    {
                        //something wrong with the file.. inform the user

                        cout << "The File specified could not be found.!";
                    }
    }
    catch(CException* error)
    {
        TCHAR szCause[1024];
        error->GetErrorMessage(szCause,1024);
        //sCause.Format("%s",szCause);
    }

    
}
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
02.02.2009, 11:10 Uhr
~toxic
Gast


hallo, in pfadangaben immer doppelte "\" also: FindFile(_T("server\\ordner\\ordner\\bu.txt")
desshalb auch die warnung mit den escape sequenzen.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
02.02.2009, 14:27 Uhr
0xdeadbeef
Gott
(Operator)


In der RFC 959 ist zwar nicht explizit ein Verzeichnistrenner festgeschrieben, in der Praxis hat sich aber / eingebürgert, wie es in POSIX festgeschrieben ist (daran halten sich, seit MacOS X erschienen ist, nahezu alle Systeme außer Windows). Du musst davon ausgehen, dass nicht jeder FTP-Server hier mit Backslashes etwas anzufangen weiß; besser wäre dementsprechend

C++:
BOOL bWorking = finder.FindFile(_T("server/ordner/ordner/bu.txt"));


und analog

C++:
BOOL bGot = connection_pointer->GetFile(_T("ordner/ordner/ordner/bu.txt"),_T("C:\\ordner\\TxtTransfer"));



Was die Warnungen angeht, \ ist in String- und Zeichenkonstanten ein Escape-Zeichen, das bedeutet, er verleiht dem dahinter stehenden Zeichen neue Bedeutung. \n ist zum Beispiel ein Zeilenumbruch, \t ein Tabulator etc. Weil das so ist, muss, wenn \ selbst in einem String auftauchen soll, klargestellt werden, dass die übliche Funktion als Escape-Zeichen nicht gelten soll; deshalb muss an dieser Stelle \ als \\ geschrieben werden. Die Konvention stammt wohl ursprünglich von C (oder einer seiner Vorgängersprachen), hat sich aber...naja, eigentlich so gut wie überall etabliert. Die einzigen Ausnahmen, die mir gerade einfallen, sind Visual Basic und die Windows-Konsole.

Siehe dazu auch http://de.wikipedia.org/wiki/Escape-Sequenz
--
Einfachheit ist Voraussetzung für Zuverlässigkeit.
-- Edsger Wybe Dijkstra
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ VC++ / MFC ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: