aktuelles Datum an Ordernamen hängen
-
Wobei es eher unelegant ist, das innerhalb der (Universal-)Kopierfunktion zu erledigen. Stattdessen sollte bei Bedarf einfach der "erweiterte" Zielordner als Parameter übergeben werden.
Und das mit dem operator-Geeiere, muss das wirklich sein?
-
Funktioniert nicht...
-
@Jansen
1. Stimmt!!! (war ja nur prinzipiell gemeint)
2. Nee! (Sollte nur zeigen, was genau passiert)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);