aktuelles Datum an Ordernamen hängen



  • @Jansen
    1. Stimmt!!! (war ja nur prinzipiell gemeint)
    2. Nee! (Sollte nur zeigen, was genau passiert)

    @Merkur

    Was heist 'Funktioniert nicht' genau?

    - Kopiert's nicht oder Stimmt der (angehaengte) Namen nicht?
    : Was sagt Debugger zum Inhalt der Variablen slTargetDir? 😕

    [ Dieser Beitrag wurde am 10.03.2003 um 11:27 Uhr von DerAltenburger editiert. ]



  • AnsiString sTimeString = FormatDateTime("ddmmyyyy", Now());
    slTargetDir = slTargetDir + sTimeString;



  • Jetzt bin ich total von der Rolle.

    SHFILEOPSTRUCT sh;
      ZeroMemory(&sh, sizeof(sh));
      sh.hwnd = NULL;
      sh.fFlags = FOF_NOCONFIRMATION ;
      sh.wFunc = FO_COPY ;
      slSourceDir+='\0';
      sh.pFrom = slSourceDir.c_str();
     AnsiString sTimeString = FormatDateTime("ddmmyyyy", Now());
    
      //slTargetDir+='\0' ;
         slTargetDir = slTargetDir + sTimeString;
      sh.pTo    = slTargetDir.c_str();
    
      sh.hNameMappings = NULL;
      sh.lpszProgressTitle = NULL;
      return SHFileOperation (&sh);
    

    Funktioniert nicht...



  • WAS geht denn nicht?



  • Es wird ein Neuer Ordner erstellt auserhalb des Verzeichnisses das ich ausgewählt hatte. Der Pfad wird aus einer Ini gelesen.

    int Result;
     Result=MessageDlg("Möchten Sie jetzt das Verzeichnis sichern...?", mtConfirmation, TMsgDlgButtons()<< mbYes << mbNo,0);
    if(Result==mrYes)
    {
    if(!MoveFiles(MyIni->ReadString("backup", "von", ""), MyIni->ReadString("backup", "nach", "")))
      ShowMessage("BACKUP war erfolgreich !");
    else ShowMessage("Fehler aufgetreten !");
    }
    


  • Hab mal schnell Deinen ersten Code in ein Testprojekt kopiert, es funktioniert tadellöserlich. Das Anhängen des aktuellen Datums an das Zielverzeichniss sollte kein Problem darstellen.
    Hier mein Testcode:

    void __fastcall TForm1::Button1Click(TObject *Sender)
    {
        ShowMessage(MoveFiles("c:\\TestDir\\*.*", "c:\\TestDirDest"));
    }
    //---------------------------------------------------------------------------
    int TForm1::MoveFiles(AnsiString slSourceDir, AnsiString slTargetDir)
    {
        SHFILEOPSTRUCT sh;
    
        ZeroMemory(&sh, sizeof(sh));
        sh.hwnd=NULL;
    
        sh.wFunc=FO_COPY ;
        sh.fFlags=FOF_NOCONFIRMATION ;//| FOF_SILENT | FOF_FILESONLY;
    
        slSourceDir+='\0';
        sh.pFrom=slSourceDir.c_str();
        slTargetDir+='\0';
        sh.pTo=slTargetDir.c_str();
    
        sh.hNameMappings=NULL;
        sh.lpszProgressTitle=NULL;
    
        return SHFileOperation(&sh);
    }
    


  • Da scheint das Lesen aus der Ini nicht zu klappen? 😕

    Mach das 'mal in einer eigenen Zeile und pruef, was gelesen wird!(Hilfsvariable fuer den String)

    Was steht genau in der Ini- Datei fuer den Pfad (Section OK, KeyOk?)



  • Danke dir, ich versuchs mal.



  • Ganz nebenbei, wenn das Datum beser lesbar sein soll, geht zB. auch

    FormatDateTime("dd'.'mm'.'yyyy", Now())

    Aber das ist ja bekannt.



  • Funktioniert jetzt alles prima. Ich habe noch an meinem Pfad zum Ordner ein \ angehängt. Danke euch...

    // es wird in die ini geschrieben
      String s =  BrowseNach->Text+ "\\";
    
    Ini->WriteString("backup", "nach",   s);
    

Anmelden zum Antworten