Delphi-PRAXiS
Seite 1 von 4  1 23     Letzte »    

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi Pfadinhalte eine Ebene aufwärts kopieren (https://www.delphipraxis.net/197911-pfadinhalte-eine-ebene-aufwaerts-kopieren.html)

zeras 18. Sep 2018 05:41

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:
fDir := 'C:\temp\alt';
fDirDst := fDir + '..\..';
TDirectory.Move(fDir, fDirDst)
bekomme ich das irgendwie nicht hin.

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?

Bbommel 18. Sep 2018 07:51

AW: Pfadinhalte eine Ebene aufwärts kopieren
 
Also zum einen fehlt da bei
Delphi-Quellcode:
fDirDst := fDir + '..\..';
doch zumindest mal ein Backslash, denn als Ergebnis bekämst du ja so ein
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...

Schokohase 18. Sep 2018 07:56

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:
TDirectory.Move
verschiebt das komplette Verzeichnis mit Inhalt. So wie du es beschrieben hast möchtest du aber nur den Inhalt verschieben.

Sherlock 18. Sep 2018 09:22

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:
move C:\temp\alt ..
Erklärung:
.. ist das übergeordnete Verzeichnis (der Vollständigkeit halber: . ist das aktuelle).

Sherlock

Schokohase 18. Sep 2018 09:28

AW: Pfadinhalte eine Ebene aufwärts kopieren
 
@Sherlock

Nein, er macht aktuell
Code:
move c:\temp\alt c:\temp\alt..\..

Sherlock 18. Sep 2018 09:31

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

Schokohase 18. Sep 2018 09:40

AW: Pfadinhalte eine Ebene aufwärts kopieren
 
Zitat:

Zitat von Sherlock (Beitrag 1413460)
Klar. Aber er will ja was ich schrieb. Meine Frage ist halt darum auch gewesen, ob es ausprobiert wurde.

Nun das was du geschrieben hast ist auch nicht so das was er haben will:

Bei
Code:
C:\Foo\Bar> move C:\temp\alt ..
wird der Order C:\temp\alt nach C:\Foo\alt verschoben.

So wie ich den TE verstanden haben möchte der von da
Code:
C:\
+- temp\
   +- alt\
      +- foo.txt
nach da
Code:
C:\
+- temp\
   +- foo.txt
Zitat:

Zitat von zeras (Beitrag 1413443)
Ich habe beispielsweise Dateien im Pfad

c:\temp\alt und möchte diese eine Ebene höher (In dem Falle nach c:\temp\) verschieben.


Sherlock 18. Sep 2018 11:29

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

DeddyH 18. Sep 2018 11:35

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.

Schokohase 18. Sep 2018 11:36

AW: Pfadinhalte eine Ebene aufwärts kopieren
 
@Sherlock

Dann hast du ein anderes Windows als ich.

Folgende Ausgangssituation:
Code:
c:\
+- temp\
|  +- alt\
|     +- foo.txt
+- foo\
   +- bar\ <- aktuelles Verzeichnis
Ich führe aus
Code:
C:\foo\bar>move c:\temp\alt ..
        1 Verzeichnis(se) wurde(n) verschoben.
und erhalte das hier
Code:
c:\
+- temp\
+- foo\
   +- alt\
   |  +- foo.txt
   +- bar\ <- aktuelles Verzeichnis
Also ich habe ein Windows 10 Pro Version 1803 Build 17134.285

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 19:32 Uhr.
Seite 1 von 4  1 23     Letzte »    

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz