Datei wird mit Leerzeichen im Pfad nicht kopiert! Warum?



  • Hallo,

    meine Datei wird trotz das ich den Dateipfad in Anführungsstrichen schreibe, nicht kopiert. Ich weiß es liegt an den Leerzeichen. Aber wo ist mein Fehler?

    //Variablendeklaration
    
            int Wert;
            string destination;
    
            //Dateipfad auslesen
            string str = "U:\\Eigene Dateien\\Mappe1.xls;
    
            // Erste Position von \ (von rechts gesehen) holen
            string::size_type pos = str.rfind('\\');
            if (pos != string::npos)
                    ++pos;
            else
                    pos = 0;
    
            //Neuen Ordner erstellen
    
            String Folder;
            Folder = "C:\\Neuer Ordner\\" ;
            _mkdir(Folder.c_str());
    
            //Zielpfad mit Anführungszeichen
            char *anz = "\"";
            String mask = anz + Folder;
            destination = mask.c_str() + str.substr(pos);        //mit Anführungszeichen
    
            //  Textfeld füllen
            FILINGSYSTEM->edtFILENAME->Text = datei;
    
            bool hatGeklappt = CopyFile(datei,destination.c_str(),true);
            if (hatGeklappt == false)
            {
                    Wert = Entscheidung(Text, Kopf);
                    if (Wert == 1)
                    {
                            bool hatGeklappt = CopyFile(datei,destination.c_str(),false);
                            MessageBox(NULL, destination.c_str(), "Datei kopiert:", MB_OK);
                            if (hatGeklappt == true)
                                    MessageBox(NULL, "ja", "Datei kopiert:", MB_OK);
                            else
                                    MessageBox(NULL, str.substr(pos).c_str(), "Datei nicht kopiert:", MB_OK);
    
                    }
                    else
                    ;
    
            }
    


  • Du darfst gar keine Anführungsstriche in den Pfadnamen schreiben.



  • Danke, jetzt gehts.
    ich hab in einem Tutorial gelesen, man müsse die Pfadnamen mit Anführungsstrichen versehen.
    Ich bin schon fast verrückt geworden.
    Danke!



  • Ja, wenn du den Dateinamen als Teil eines Konsolenbefehls per system() oder WinExec() einbaust, benötigst du die Anführungszeichen (sonst spaltet die Konsole den Namen in zwei einzelne Parameter auf). Die WinAPI-Funktionen wie CopyFile() benötigen das nicht.


Anmelden zum Antworten