Indy9 und Anzeige von Dateien ohne Extension



  • Hallo,

    habe ein FTP Client mit der TIdFTP Komponente aus Indy9 entwickelt.

    Funktioniert auch auf weiters super, mein Problem ist aber das die List() Methode Dateien ohne Extension nicht findet.

    Ist das ein Bug und wie kann man der Sache entgegen wirken.

    Gegen ein eventuelles Beispiel ist nicht einzuwenden!!!!!!!!! 🙂

    Danke im voraus



  • vielleicht hilft dir das:
    ich mach das so:

    this->strFTPRootFolder		= this->IdFTP1->RetrieveCurrentDir();
    this->strFTPCurrentFolder	= this->strFTPRootFolder;
    this->IdFTP1->ListResult->Clear();
    
    this->ListView1->Clear();
    
    this->IdFTP1->List(pTMPStringList,"",true);
    this->IdFTP1->DirectoryListing->LoadList(pTMPStringList);
    pFTPListItems = this->IdFTP1->DirectoryListing;
    
    pItemList = this->ListView1->Items->Add();
    pItemList->Caption	= "..";
    pItemList->SubItems->Add("Ordner");
    
    for(int iIndex = 0;iIndex < pFTPListItems->Count;iIndex++) {
    	if(pFTPListItems->Items[iIndex]->ItemType	== 0) { // Ordner
        pItemList = this->ListView1->Items->Add();
        pItemList->Caption	= pFTPListItems->Items[iIndex]->FileName;
        pItemList->SubItems->Add("Ordner");        
      }
    }
    


  • gleiches Problem !!!!!!!

    Danke trotzdem

    DJ BlackEagle schrieb:

    vielleicht hilft dir das:
    ich mach das so:

    this->strFTPRootFolder		= this->IdFTP1->RetrieveCurrentDir();
    this->strFTPCurrentFolder	= this->strFTPRootFolder;
    this->IdFTP1->ListResult->Clear();
    
    this->ListView1->Clear();
    
    this->IdFTP1->List(pTMPStringList,"",true);
    this->IdFTP1->DirectoryListing->LoadList(pTMPStringList);
    pFTPListItems = this->IdFTP1->DirectoryListing;
    
    pItemList = this->ListView1->Items->Add();
    pItemList->Caption	= "..";
    pItemList->SubItems->Add("Ordner");
    
    for(int iIndex = 0;iIndex < pFTPListItems->Count;iIndex++) {
    	if(pFTPListItems->Items[iIndex]->ItemType	== 0) { // Ordner
        pItemList = this->ListView1->Items->Add();
        pItemList->Caption	= pFTPListItems->Items[iIndex]->FileName;
        pItemList->SubItems->Add("Ordner");        
      }
    }
    


  • hmm, sollte eigentlich... da ers bei mir tut..



  • hast du es schon mal auf einem Unix Server probiert!!!! Da wirst du Dateien ohne Erweiterung nicht sehen!!!!!!!

    Und da fängt das Hauptproblem an, die meisten großen Firmen FTP Server sind Unix 😞

    DJ BlackEagle schrieb:

    hmm, sollte eigentlich... da ers bei mir tut..



  • ne, kann ich heut abend ma machen. 😉



  • o.k. wäre toll, den ich dreh bald durch mit dem problem, wäre ich bloß nie von meinen win-api basierenden FTP weggegangen, der war zwar arsch langsam aber ging mit allen servern sogar mit AS400

    DJ BlackEagle schrieb:

    ne, kann ich heut abend ma machen. 😉



  • ok, werd ich machen. hab ja zuhause nen linux server am laufen. werde dir dann auch den code hier tippen... ist ein debian... kann aber erst nach 19 uhr sein..



  • Hi DJ BlackEagle,

    lass den Test daheim, dein Beispiel geht doch!!!!!!! hatte einen Fehler drin!!!

    Vielen vielen Dank !!!!!! 🙂 🙂 🙂 🙂

    DJ BlackEagle schrieb:

    ok, werd ich machen. hab ja zuhause nen linux server am laufen. werde dir dann auch den code hier tippen... ist ein debian... kann aber erst nach 19 uhr sein..



  • ok. wußt ichs doch. und wo war der fehler?



  • das wenn ich wüsste,
    als ich dein beispiel das erste mal prob. hab gings nicht.
    Hab dann zwischendurch mich um ein andres prob. kümmern müssen und als ich dann nochmal prob. ging es und auch immer noch.

    Hab aber auch herausgefunden das List bei Übergabe . auch prob. macht (Adressfehler und so), werte die ext. aber nun nachträglich aus.

    Hier die func. dazu, vielleicht nützt sie dir auch mal!!!!!

    int wildcmp(char *wild, char *string){
        char *cp, *mp;
    
            while ((*string) && (*wild != '*')) {
    
                if ((*wild != *string) && (*wild != '?')) {
                return 0;
            }
            wild++;
            string++;
        }
    
            while (*string) {
    
                if (*wild == '*') {
    
                    if (!*++wild) {
                    return 1;
                }
                mp = wild;
                cp = string+1;
    
                } else if ((*wild == *string) || (*wild == '?')) {
                wild++;
                string++;
    
                } else {
                wild = mp;
                string = cp++;
            }
        }
    
            while (*wild == '*') {
            wild++;
        }
        return !*wild;
    }
    

    DJ BlackEagle schrieb:

    ok. wußt ichs doch. und wo war der fehler?



  • Sorry wenn ich das kurz anmerke, aber dein prob. liest sich ehrlich gesagt scheußlich. Das irritiert beim lesen ziemlich.

    Wenn du jemanden zitieren möchtest, dann schreib zuerst das Zitat und dann die Antwort, sowas ist üblich. Sollte dir eigentlich geläufig sein aus Zeitschriften, Büchern etc. 😉



  • PuppetMaster2k schrieb:

    Sorry wenn ich das kurz anmerke, aber dein prob. liest sich ehrlich gesagt scheußlich. Das irritiert beim lesen ziemlich.

    Wenn du jemanden zitieren möchtest, dann schreib zuerst das Zitat und dann die Antwort, sowas ist üblich. Sollte dir eigentlich geläufig sein aus Zeitschriften, Büchern etc. 😉

    sorry, hab aber heut so viele Probleme auf Arbeit, da mach ichs kurz und schmerzlos. Es hat halt nicht jeder soviel Zeit wie manch andere 😉


Anmelden zum Antworten