Entwickler-Ecke

Dateizugriff - Einfachere Möglichkeit einen UNC Dateipfad zu prüfen?


trm - Mi 29.06.11 01:38
Titel: Einfachere Möglichkeit einen UNC Dateipfad zu prüfen?
Hiho :)

Mein Test auf einen gültigen UNC-Pfad (der evtl. noch nicht existiert) sieht so aus:


Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
      if Pos('\\', Dummy_String) = 1 then
      begin
        Dummy_String := StringReplace(Dummy_String, '\\''\', [rfReplaceAll]);
        Dummy_String := '\' + Dummy_String;
      end;
      if Pos('\\', Dummy_String) > 1 then
        Dummy_String := StringReplace(Dummy_String, '\\''\', [rfReplaceAll]);


Dummy_String enthält eine Zeichenkette nach dem Muster:

Quelltext
1:
//Mathias-PC/dateipfad$$/test/                    


Ist meine Lösung einfacher zu erreichen, gibt es evtl. eine vorgefertige Funktion/Procedure für Delphi7 ?

Viele Grüße
~Mathias


jaenicke - Mi 29.06.11 06:21

user profile icontrm hat folgendes geschrieben Zum zitierten Posting springen:

Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
      if Pos('\\', Dummy_String) = 1 then
      begin
        Dummy_String := StringReplace(Dummy_String, '\\''\', [rfReplaceAll]);
        Dummy_String := '\' + Dummy_String;
      end;
      if Pos('\\', Dummy_String) > 1 then
        Dummy_String := StringReplace(Dummy_String, '\\''\', [rfReplaceAll]);
Also wenn am Anfang \\ steht, ersetzt du überall im String \\ durch \. Jetzt hast du also vorne nur noch ein \. Dann fügst du das zweite wieder an.
Wenn woanders im String noch einmal ein \\ vorkommt, ersetzt du doch wieder alle \\ durch ein \. Auch das erste.

Ich weiß nicht so recht was du damit testen willst, aber wichtig wäre zu testen, ob am Anfang die beiden \\ stehen und ob sonst nirgends noch einmal \\ vorkommt. Für letzteres gibt es ja PosEx.

Zudem musst du noch prüfen, dass keine ungültigen Zeichen wie : im String vorkommen.


trm - Mi 29.06.11 11:23

Ich wollte eigentlich nur wissen, ob es eine Möglichkeit auf Prüfung eines gültigen UNC gibt.
Meine Methode ist ja korrekt, aber mir erscheint die ein wenig plump.

DirectoryExists kann ich leider nicht nutzen, da der Pfad, wie schon bemerkt, u.U. noch nicht existiert.