AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Foldernamen von Dateinamen unterscheiden

Ein Thema von bernhard_LA · begonnen am 30. Jul 2024 · letzter Beitrag vom 4. Aug 2024
Antwort Antwort
Seite 1 von 2  1 2      
bernhard_LA

Registriert seit: 8. Jun 2009
Ort: Bayern
1.138 Beiträge
 
Delphi 11 Alexandria
 
#1

Foldernamen von Dateinamen unterscheiden

  Alt 30. Jul 2024, 10:41
ich muss in meiner Anwendung Pfade zum Lesen und Schreiben von Dateien verarbeiten.
Übergebe ich an meine Funktion eine Stringliste welche nur einen Pfad beschreibt ist die Funktion korrekt,
wenn aber das letzte Element einen Dateinamen beschreibt bekomme ich ein unnötiges \ Zeichen im Ergebnis.

Was ist der beste Ansatz um dieses Problem zulösen ? ich kann unter Umständen nicht auf das Verzeichnis zugreifen zur Laufzeit meines Programms



Delphi-Quellcode:
function CombinePathStringlist(aPathList: TStringList;
  AddServerPrefix: Boolean): String;
var
  i: Integer;
begin
  Result := '';
  for i := 0 to (aPathList.Count - 1) do
  begin
    Result := IncludeTrailingPathDelimiter(Result + aPathList[i]);
  end;

  if AddServerPrefix then
    Result := IncludeTrailingPathDelimiter(ServerPathPrefix + Result);

end;
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.066 Beiträge
 
Delphi 12 Athens
 
#2

AW: Foldernamen von Dateinamen unterscheiden

  Alt 30. Jul 2024, 10:48
Delphi-Referenz durchsuchenFileExists
Delphi-Referenz durchsuchenDirectoryExists
Delphi-Referenz durchsuchenTFile.Exists
Delphi-Referenz durchsuchenTDirectory.Exists
...

Wie willst du sonst entscheiden können, ob es eine Datei/Verzeichnis ist?

PS: Auf eine "File"-Extension, bzw. Punkt im Namen, zu prüfen, sagt auch nichts darüber aus.
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.

Geändert von himitsu (30. Jul 2024 um 10:50 Uhr)
  Mit Zitat antworten Zitat
bernhard_LA

Registriert seit: 8. Jun 2009
Ort: Bayern
1.138 Beiträge
 
Delphi 11 Alexandria
 
#3

AW: Foldernamen von Dateinamen unterscheiden

  Alt 30. Jul 2024, 11:10
ich könnte darauf bauen das kein user seinen Folder für *.txt Dateien \subolder.txt nennt ....
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.453 Beiträge
 
Delphi 12 Athens
 
#4

AW: Foldernamen von Dateinamen unterscheiden

  Alt 30. Jul 2024, 11:19
Unter Windows ist allein aus dem Namen nicht zu entscheiden, ob es ein Folder oder ein File ist. Lediglich eine Überprüfung auf wie schon gesagt TFile.Exists(Result) oder auf faDirectory in TPath.GetAttributes(Result) schafft Klarheit. Man kann also nur auf ein existierendes File prüfen.

BTW: Das aktuelle Delphi 12 bietet übrigens ein passendes TPath.Combine overload für das Zusammensetzen an.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.066 Beiträge
 
Delphi 12 Athens
 
#5

AW: Foldernamen von Dateinamen unterscheiden

  Alt 30. Jul 2024, 13:31
Wir haben kunden, da wird der Username a.mustermann genannt, und somit gibt es ein C:\Users\a~123456.mus

Mit dem Spaß, dass am Ende einige Kurznahmen länger sind, als der Langname. (zum Glück stirbt in paar Monaten Win10 aus und in Win11 sind die Kurznamen standardmäßig aus)
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.
  Mit Zitat antworten Zitat
Benutzerbild von dummzeuch
dummzeuch

Registriert seit: 11. Aug 2012
Ort: Essen
1.605 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#6

AW: Foldernamen von Dateinamen unterscheiden

  Alt 30. Jul 2024, 13:41
ich könnte darauf bauen das kein user seinen Folder für *.txt Dateien \subolder.txt nennt ....
Ein Kollege von mir hat vor kurzem einen Ordner namens bilder.dbf angelegt ...
Thomas Mueller
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.066 Beiträge
 
Delphi 12 Athens
 
#7

AW: Foldernamen von Dateinamen unterscheiden

  Alt 30. Jul 2024, 13:56
Das Einzige was geht, wäre, dass angegebene Pfade immer mit \ enden müssen.
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.453 Beiträge
 
Delphi 12 Athens
 
#8

AW: Foldernamen von Dateinamen unterscheiden

  Alt 30. Jul 2024, 15:01
Ein Kollege von mir hat vor kurzem einen Ordner namens bilder.dbf angelegt ...
Ich habe hier einen Haufen Ordner mit Namen .git, .hg oder .svn
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
THY4243

Registriert seit: 15. Dez 2012
Ort: München - Untermenzing
44 Beiträge
 
Delphi 11 Alexandria
 
#9

AW: Foldernamen von Dateinamen unterscheiden

  Alt 30. Jul 2024, 22:25
Es gäbe noch andere Wege. Man kann mittels des Abfragens der Strings der Stringliste anhand der Attribute herausbekommen, ob es sich um eine Datei oder einen Pfad handelt.

"GetFileAttributes(...)"
https://stackoverflow.com/questions/...-xe2-correctly

oder
https://www.delphi-treff.de/tipps-tr...ute-ermitteln/

File Attribute Constants:
https://learn.microsoft.com/en-us/wi...bute-constants

Zu der Anmerkung
Zitat:
"ich kann unter Umständen nicht auf das Verzeichnis zugreifen zur Laufzeit meines Programms "
Wenn kein Zugriff zur Laufzeit besteht, ist es imho einerlei, ob es sich um eine Datei oder ein Verzeichnis handelt. Im Ergebnis lässt sich der String aus der Stringlist dann nicht verarbeiten.
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.116 Beiträge
 
Delphi 11 Alexandria
 
#10

AW: Foldernamen von Dateinamen unterscheiden

  Alt 2. Aug 2024, 20:31
Moin Bernhard,

ich frage mich gerade wie aPathlist entsteht, denn wenn das einen gültigen Pfad
ergeben soll, in dem Du lesen/schreiben kannst, muss dieser ja schon existieren.
Wenn der Pfad hingegen nicht existieren muss, sondern eventuell erst erzeugt
wird kannst Du es nicht unterscheiden, da der Name, wie schon gesagt wurde,
nichts darüber aussagt, ob es sich um ein Verzeichnis oder eine Datei handelt.
Je nachdem wie diese Liste von Verzeichnisnamen erzeugt wird, könnte es sogar
ganz dumm laufen und es steht mitten in der Liste etwas was als Verzeichnis dienen
soll, wo in dem entsprechenden Verzeichnis aber schon eine Datei gleichen Namens
existiert und dann liesse sich das Verzeichnis nicht anlegen.
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 21:42 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