![]() |
Pfadinhalte eine Ebene aufwärts kopieren
Ich habe beispielsweise Dateien im Pfad
c:\temp\alt und möchte diese eine Ebene höher (In dem Falle nach c:\temp\) verschieben. Mit
Delphi-Quellcode:
bekomme ich das irgendwie nicht hin.
fDir := 'C:\temp\alt';
fDirDst := fDir + '..\..'; TDirectory.Move(fDir, fDirDst) Es kommt immer die Meldung, dass das Verzeichnis schon existiert. Da aber die Ursprungspfade nicht immer gleich sind, müsste alles relativ gehalten sein. Was mache ich falsch? |
AW: Pfadinhalte eine Ebene aufwärts kopieren
Also zum einen fehlt da bei
Delphi-Quellcode:
doch zumindest mal ein Backslash, denn als Ergebnis bekämst du ja so ein
fDirDst := fDir + '..\..';
c:\temp\alt..\.. Außerdem ist der Pfad direkt über dem c:\temp\alt ja ".." und nicht "..\.." - mit letzterem landest du schon bei c:\. Das ist mir jetzt auf die Schnelle aufgefallen... |
AW: Pfadinhalte eine Ebene aufwärts kopieren
Generell versuchst du das Verzeichnis alt im Pfad c:\temp nach c:\ zu verschieben. Der neue Pfad würde also c:\alt sein.
Ein
Delphi-Quellcode:
verschiebt das komplette Verzeichnis mit Inhalt. So wie du es beschrieben hast möchtest du aber nur den Inhalt verschieben.
TDirectory.Move
|
AW: Pfadinhalte eine Ebene aufwärts kopieren
Hast Du denn den Befehl mal händisch ausprobiert? In der Eingabeaufforderung? Macht man das heute nicht mehr?
Der Befehl dazu wäre:
Code:
Erklärung:
move C:\temp\alt ..
.. ist das übergeordnete Verzeichnis (der Vollständigkeit halber: . ist das aktuelle). Sherlock |
AW: Pfadinhalte eine Ebene aufwärts kopieren
@Sherlock
Nein, er macht aktuell
Code:
move c:\temp\alt c:\temp\alt..\..
|
AW: Pfadinhalte eine Ebene aufwärts kopieren
Klar. Aber er will ja was ich schrieb. Meine Frage ist halt darum auch gewesen, ob es ausprobiert wurde.
Vielleicht hätte ich an geeigneter Stelle noch das Wörtchen "korrekt" (mit passender Flexion) einflechten sollen... Sherlock |
AW: Pfadinhalte eine Ebene aufwärts kopieren
Zitat:
Bei
Code:
wird der Order C:\temp\alt nach C:\Foo\alt verschoben.
C:\Foo\Bar> move C:\temp\alt ..
So wie ich den TE verstanden haben möchte der von da
Code:
nach da
C:\
+- temp\ +- alt\ +- foo.txt
Code:
C:\
+- temp\ +- foo.txt Zitat:
|
AW: Pfadinhalte eine Ebene aufwärts kopieren
Kann ich nicht nachvollziehen. Unter Windows 10 verhält es sich genau so wie ich es schrieb.
move c:\temp\irgendwas .. verschiebt den Ordner irgendwas eine Ebene höher, so daß man dann ein c:\irgendwas bekommt. Sherlock |
AW: Pfadinhalte eine Ebene aufwärts kopieren
Wenn ich es richtig verstehe, soll nicht der Ordner an sich, sondern dessen Inhalt verschoben werden, so dass dieser anschließend auf derselben Ebene wie der Ursprungsordner liegt.
|
AW: Pfadinhalte eine Ebene aufwärts kopieren
@Sherlock
Dann hast du ein anderes Windows als ich. Folgende Ausgangssituation:
Code:
Ich führe aus
c:\
+- temp\ | +- alt\ | +- foo.txt +- foo\ +- bar\ <- aktuelles Verzeichnis
Code:
und erhalte das hier
C:\foo\bar>move c:\temp\alt ..
1 Verzeichnis(se) wurde(n) verschoben.
Code:
Also ich habe ein Windows 10 Pro Version 1803 Build 17134.285
c:\
+- temp\ +- foo\ +- alt\ | +- foo.txt +- bar\ <- aktuelles Verzeichnis Meinst du mein Windows ist kaputt? Sollte ich das neu installieren? Oder ist sogar die Hardware defekt? |
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:15 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz