Entwickler-Ecke
Dateizugriff - Dateien und Ordner verschieben?
Anonymous - Mo 02.06.03 17:24
Titel: Dateien und Ordner verschieben?
Hi!
Mein Programm muss Dateien aus einem Unterverzeichnis des Hauptverzeichnisses (= wo Prog ist) verschieben. Dazu kommt noch, dass neben den Dateien auch ein Ordner verschoben werden muss (auch im Unterverzeichnis).
Gibts da eine nichtumständliche Möglichkeit? Kann man das auch mit DOS-Befehlen machen (nicht über Batch-Datei!)?
PAX :)
O'rallY - Mo 02.06.03 17:37
In den FAQs findest du, wie man einen Ordner mit seinen Unterordnern in einer rekursiven (sich selbstaufrufenden) Prozedur durchsucht. Diese Implementation durch einen Kopierbefehl zu erweitern, dürfte nicht schwer sein.
Zu den DOS-Befehlen: Das ist nicht gerade schönes programmieren.
Delete - Mo 02.06.03 18:09
Auch schön ist
SHFileOperation, was der Kopier-, Verschiebe- und Löschanimation des Explorers entspricht. Damit reduziert sich die ganze Arbeit auf ein paar Einstellungen und einen Befehl, und man erhält dafür einen fertigen Dialog samt Progressbar und Dateinamen-Anzeige.
Und was muss man dafür tun? O.g. Zauberwort mal in die
Suche [
http://www.delphi-forum.de/search.php] eintippen.
Anonymous - Di 03.06.03 10:52
Ich hab mal im Demo-Verzeichnis nachgeguckt, doch da war nur ein Ordner namens "ShellControls"! Is schon installiert! Ist das nun das richtige? Wo bekomm ich ShFileOperation her? Ist das Freeware?
Danke
PAX
Tino - Di 03.06.03 11:38
| \ \\PAX// / hat folgendes geschrieben: |
| Wo bekomm ich ShFileOperation her? Ist das Freeware? |
Hast Du mal die Suchfunktion mit dem Begriff
SHFileOperation benutzt? SHFileOperation ist eine API Funktion. Siehe dir mal
dieses [
http://www.delphi-forum.de/viewtopic.php?p=36313#36313] Topic an.
Gruß
Tino
knuffel - So 10.08.03 13:47
:!: hallo!
mit dem folgenden code kann man relativ einfach ordner und dateien verschieben. dabei wird der ORDNER in den ZIELPFAD verschoben.
hier den sourcecode:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40: 41: 42: 43: 44: 45: 46: 47: 48:
| unit Unit1;
interface
uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, shellapi;
type TForm1 = class(TForm) Button1: TButton; procedure Button1Click(Sender: TObject); private public end;
var Form1: TForm1;
implementation
{$R *.dfm}
function MoveDir(const fromDir, toDir: string): Boolean; var fos: TSHFileOpStruct; begin ZeroMemory(@fos, SizeOf(fos)); with fos do begin wFunc := FO_MOVE; fFlags := FOF_FILESONLY; pFrom := PChar(fromDir + #0); pTo := PChar(toDir) end; Result := (0 = ShFileOperation(fos)); end;
procedure TForm1.Button1Click(Sender: TObject); begin if (MoveDir('ORDNER', 'ZIELPFAD': string)=true) then ShowMessage('Verschiebevorgang erfolgreich !') end;
end. |
knuffel
Keldorn - So 10.08.03 13:57
@knuffel
die anderen poss hast du gelesen? da steht das gleiche :roll:
außerdem hat sich der Frage abgemeldet und das Topic ist steinalt :roll:
knuffel - Mo 11.08.03 10:27
:oops: muss ich wohl übersehen haben
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!