AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Delphi Pfadinhalte eine Ebene aufwärts kopieren

Pfadinhalte eine Ebene aufwärts kopieren

Ein Thema von zeras · begonnen am 18. Sep 2018 · letzter Beitrag vom 20. Sep 2018
Antwort Antwort
Seite 4 von 4   « Erste     234
Benutzerbild von Sherlock
Sherlock

Registriert seit: 10. Jan 2006
Ort: Offenbach
3.753 Beiträge
 
Delphi 11 Alexandria
 
#31

AW: Pfadinhalte eine Ebene aufwärts kopieren

  Alt 20. Sep 2018, 09:11
Ist jetzt nicht böse gemeint, aber warum kommt das erst jetzt?

Sherlock
Oliver
Geändert von Sherlock (Morgen um 16:78 Uhr) Grund: Weil ich es kann
  Mit Zitat antworten Zitat
Schokohase
(Gast)

n/a Beiträge
 
#32

AW: Pfadinhalte eine Ebene aufwärts kopieren

  Alt 20. Sep 2018, 09:41
Jupp, und auf die Idee mit AnsiReplaceText für den Ü-Ordner wäre ich nicht gekommen (hätte die Backslashes von hinten geparst)
Was passiert wohl bei diesem Pfad:
Code:
C:\temp\alt\ein\alt\dir\datei.txt
Deswegen bist du darauf nicht gekommen, weil das mit dem AnsiReplaceText sehr fehleranfällig ist
  Mit Zitat antworten Zitat
Delphi.Narium

Registriert seit: 27. Nov 2017
2.400 Beiträge
 
Delphi 7 Professional
 
#33

AW: Pfadinhalte eine Ebene aufwärts kopieren

  Alt 20. Sep 2018, 10:10
Jupp, und auf die Idee mit AnsiReplaceText für den Ü-Ordner wäre ich nicht gekommen (hätte die Backslashes von hinten geparst)
Was passiert wohl bei diesem Pfad:
Code:
C:\temp\alt\ein\alt\dir\datei.txt
Deswegen bist du darauf nicht gekommen, weil das mit dem AnsiReplaceText sehr fehleranfällig ist
Das stimmt natürlich, kommt halt auf die Aufgabenstellung an. Allgemeingültig ist meine Lösung sicherlich nicht.

Aber Dein Beispiel entspricht nicht der Aufgabenstellung. Es soll nur der letzte Teil aus dem Pfad entfernt werden.

Lieber eher sowas?
Delphi-Quellcode:
function GetNewFileName(sFilename : String) : String;
begin
  Result := ExtractFilePath(sFilename);
  Result := ExcludeTrailingPathDelimiter(Result);
  Result := ReverseString(Result);
  Result := Copy(Result,1,Pos(SysUtils.PathDelim,Result) - 1);
  Result := ReverseString(Result);
  Result := IncludeTrailingPathDelimiter(Result);
  Result := Result + ExtractFilename(sFilename);
end;

...
if not SysUtils.RenameFile(sFilename,GetNewFileName(sFilename)) then begin
  FehlermeldungMachen;
end;
(ungetestet hingedaddelt)
  Mit Zitat antworten Zitat
Schokohase
(Gast)

n/a Beiträge
 
#34

AW: Pfadinhalte eine Ebene aufwärts kopieren

  Alt 20. Sep 2018, 10:45
Ich hätte jetzt eher an so etwas gedacht
Delphi-Quellcode:
program Project1;

{$APPTYPE CONSOLE}
{$R *.res}

uses
  System.SysUtils,
  System.IOUtils;

procedure MoveDirectoryContentOneUp( const ASource: string );
var
  srcPath, dstPath: string;
  srcEntry, dstEntry: string;
begin
  srcPath := IncludeTrailingPathDelimiter( TPath.GetFullPath( ASource ) );
  dstPath := IncludeTrailingPathDelimiter( ExpandFileName( TPath.Combine( srcPath, '..' ) ) );

  for srcEntry in TDirectory.GetDirectories( srcPath ) do
    begin
      dstEntry := TPath.Combine( dstPath, ExtractRelativePath( srcPath, srcEntry ) );
      TDirectory.Move( srcEntry, dstEntry );
    end;

  for srcEntry in TDirectory.GetFiles( srcPath ) do
    begin
      dstEntry := TPath.Combine( dstPath, ExtractRelativePath( srcPath, srcEntry ) );
      TFile.Move( srcEntry, dstEntry );
    end;
end;

begin
  try
    MoveDirectoryContentOneUp( 'C:\tmp\alt' );
  except
    on E: Exception do
      Writeln( E.ClassName, ': ', E.Message );
  end;

end.
Wenn man mit den Pfadangeben herumspielen möchte, dann sollte man auch die entsprechenden Funktionen zum Herumspielen verwenden.

Geändert von Schokohase (20. Sep 2018 um 10:48 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
 
FreePascal / Lazarus
 
#35

AW: Pfadinhalte eine Ebene aufwärts kopieren

  Alt 20. Sep 2018, 11:05
Ist jetzt nicht böse gemeint, aber warum kommt das erst jetzt?

Sherlock
Meinst Du "richtig zippen" und das Problem existiert nicht mehr?

Gruß
K-H
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector
  Mit Zitat antworten Zitat
old7
(Gast)

n/a Beiträge
 
#36

AW: Pfadinhalte eine Ebene aufwärts kopieren

  Alt 20. Sep 2018, 13:10
@Schokohase:
Zitat:
Wenn man mit den Pfadangeben herumspielen möchte, dann sollte man auch die entsprechenden Funktionen zum Herumspielen verwenden.
Man (Delphi.Narium vielleicht, aber ich auf jeden Fall) benutzt noch Delphi 7. Daher auch "old7"

Delphi CE ist mir noch zu unübersichtlich.
  Mit Zitat antworten Zitat
zeras

Registriert seit: 11. Mär 2007
Ort: Saalkreis
1.618 Beiträge
 
Delphi 12 Athens
 
#37

AW: Pfadinhalte eine Ebene aufwärts kopieren

  Alt 20. Sep 2018, 19:28
Ist jetzt nicht böse gemeint, aber warum kommt das erst jetzt?

Sherlock
Meinst Du "richtig zippen" und das Problem existiert nicht mehr?

Gruß
K-H
Anders zippen geht nicht, weil die Zipdatei noch für andere Zwecke genutzt wird und da ist die Struktur OK.
Matthias
Es ist nie falsch das Richtige zu tun!
- Mark Twain
  Mit Zitat antworten Zitat
Benutzerbild von KodeZwerg
KodeZwerg

Registriert seit: 1. Feb 2018
3.685 Beiträge
 
Delphi 11 Alexandria
 
#38

AW: Pfadinhalte eine Ebene aufwärts kopieren

  Alt 20. Sep 2018, 19:47
Funktioniert mein Vorschlag für Dich nicht? Der bewegt Inhalt plus Unterordner in ein neues Root-Dir.
Gruß vom KodeZwerg
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 15:27 Uhr.
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