Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   letzen Ordnernamen eines Pfades ermitteln (https://www.delphipraxis.net/55875-letzen-ordnernamen-eines-pfades-ermitteln.html)

s14 28. Okt 2005 08:52

Re: letzen Ordnernamen eines Pfades ermitteln
 
Hallo,
wie wär's damit.. :mrgreen:

Delphi-Quellcode:
function gibletztenOrdner(komplett: String): String;  // es muss der ganze Pfad mit Dateiname übergeben werden
begin
  Result := ExtractFileName(ExcludeTrailingPathDelimiter(ExtractFilePath(komplett)));
end;
..da ist man auch nicht auf den Backslash festgelegt.

dahead 28. Okt 2005 09:10

Re: letzen Ordnernamen eines Pfades ermitteln
 
Morgen,

Kann man da nicht auch einfach die Funktion ExtractRelativePath verwenden?

Delphi-Quellcode:
fShortDirectory := ExtractRelativePath(fFullDirectory, fFullDirectory);

eddy 28. Okt 2005 10:18

Re: letzen Ordnernamen eines Pfades ermitteln
 
Hallo Leute,

was haltet Ihr davon (getestet unter Delphi 5):



Delphi-Quellcode:
function GetLstPathName( pn : string) : string;
begin
  pn := ExcludeTrailingBackslash(ExtractFilePath(pn));
  // es sollte eigentlich immer noch ein \ in der Zeichenkette stehen
  Result := copy(pn, LastDelimiter('\', pn)+1, length(pn));
end;

// pn muß am Ende ein Backslash haben oder einen Dateinamen

procedure TFAB.test1Click(Sender: TObject);
begin
  // Aufruf entweder nur mit Pfadname auf \ endend
  s := 'C:\Dokumente und Einstellungen\Administrator\Eigene Dateien\Testpfad\Settings\';

  // oder mit Dateiname

  s := 'C:\Dokumente und Einstellungen\Administrator\Eigene Dateien\Testpfad\Settings\test.dat';

  lblTest.Caption := GetLstPathName(s); // --> Settings
end;

@s14:
Delphi-Quellcode:
ExcludeTrailingPathDelimiter
gibt es unter Delphi5 noch nicht

@dahead:
Delphi-Quellcode:
fShortDirectory := ExtractRelativePath(fFullDirectory, fFullDirectory);
lieferte mir nur den Dateinamen im Test

mfg
eddy

dahead 28. Okt 2005 10:54

Re: letzen Ordnernamen eines Pfades ermitteln
 
@eddy:

du darfst diese funktion dann auch nur mit verzeichnis-namen aufrufen.

dimo 28. Okt 2005 12:18

Re: letzen Ordnernamen eines Pfades ermitteln
 
ExtractFileName(ExcludeTrailingBackSlash(ExtractFi lePath('c:\windows\system32\a.txt')))

s14 28. Okt 2005 12:41

Re: letzen Ordnernamen eines Pfades ermitteln
 
@dimo

Hast Du Beitrag #11 gelesen? :cyclops:

SMO 28. Okt 2005 12:57

Re: letzen Ordnernamen eines Pfades ermitteln
 
Kleine Anmerkung zu den ganzen Lösungen hier:

1.) Laut Delphi-Hilfe sollen neue Programme die Funktionen IncludeTrailingPathDelimiter und ExcludeTrailingPathDelimiter benutzen, nicht die alten Versionen mit "Backslash" im Namen. Natürlich nur, wenn wan eine entsprechend neue Delphi-Version hat, in der es diese Funktionen schon gibt.

2.) Kennt ihr den Unterschied zwischen ExtractFileDir und ExtractFilePath? Ersteres liefert das Verzeichnis ohne terminierenden Pathdelimiter. D.h. statt "ExcludeTrailingPathDelimiter(ExtractFilePath(...) )" kann man auch einfach "ExtractFileDir(...)" schreiben. ;)
Einen kleinen Unterschied gibt es aber schon:
ExcludeTrailingPathDelimiter(ExtractFilePath('C:\' )) ergibt 'C:'
ExtractFileDir('C:\') ergibt 'C:\'

Lannes 28. Okt 2005 13:05

Re: letzen Ordnernamen eines Pfades ermitteln
 
Hallo,

ab Delphi 3 und unter
Berücksichtigung von Dateien die sich im Root-Verzeichnis befinden können:
Delphi-Quellcode:
function FolderOrDrive(fileName: string): string;
var i : Integer;
begin
  Result := ExtractFileDir(fileName);
  i := LastDelimiter('\',Result);
  if i = 3 then
    Delete(Result,i,1)
    else
      Delete(Result,1,i);
end;

dimo 28. Okt 2005 13:19

Re: letzen Ordnernamen eines Pfades ermitteln
 
Nein :)
Zitat:

Zitat von s14
@dimo

Hast Du Beitrag #11 gelesen? :cyclops:



Alle Zeitangaben in WEZ +1. Es ist jetzt 02:48 Uhr.
Seite 2 von 2     12   

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