Einzelnen Beitrag anzeigen

Glados
(Gast)

n/a Beiträge
 
#9

AW: Eine Pfadangabe "säubern"?

  Alt 11. Sep 2017, 22:39
Zitat:
C:\123\ 456\789\ ist zulässig
Wie schafft man es denn ein Verzeichnis mit [Leerzeichen]456 abzuspeichern? Habe ich bisher noch nie geschafft.

Zitat:
Ich wollte lediglich darauf hinweisen, dass es auch andere legale Pfade gibt, welche durch das entfernen des doppelten \\ zerstört werden
Ich hätte besser anfügen sollen, dass ich an einer anderen Stelle mittlerweile prüfen, ob es sich um einen Netzwerkpfad handelt. Klappt wunderbar.

Delphi-Quellcode:
var
 bIsDirectory, bIsNetworkPath: Boolean;
begin
 aPath := Trim(aPath);

 if aPath = 'then
  begin
   Result := '';
   Exit;
  end;

 aPath := StringReplace(aPath, '/', '\', [rfReplaceAll]);

 bIsNetworkPath := Copy(aPath, 1, 2) = '\\';
 bIsDirectory := ist aPath ein Verzeichnis? ...

 // Wenn aDir eine Dateiangabe ist warum auch immer, dann ...
 // aDir := ExtractFileDir(aDir);


 while Pos('\ ', aPath) > 0 do
  aPath := StringReplace(aPath, '\ ', '\', [rfReplaceAll]);

 if not bIsNetworkPath then
  while Pos('\\', aPath) > 0 do
   aPath := StringReplace(aPath, '\\', '\', [rfReplaceAll]);

 while (AnsiEndsStr('\', aPath)) or AnsiEndsStr('.', aPath) do
  aPath := Copy(aPath, 1, Length(aPath) - 1);

 Result := Trim(aPath);
end;
Zitat:
Ich habe den Eindruck daß du ein etwas rustikales Vorgehen bevorzugst.
Wie genau meinst du das?
Wenn es hierfür was Fertiges gäbe, würde ich es sofort nehmen.

Auf etwa dieselbe Art und Weise habe ich auch etwas zusammengebaut, was verbotene Zeichen in Dateinamen entfernt.
Da aber mit einem Array.
  Mit Zitat antworten Zitat