AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Delphi Pfade zu Dateien auf Netzlaufwerken in UNC-Pfade umwandeln
Thema durchsuchen
Ansicht
Themen-Optionen

Pfade zu Dateien auf Netzlaufwerken in UNC-Pfade umwandeln

Ein Thema von ringli · begonnen am 15. Jul 2005
Antwort Antwort
ringli

Registriert seit: 7. Okt 2004
509 Beiträge
 
Delphi 11 Alexandria
 
#1

Pfade zu Dateien auf Netzlaufwerken in UNC-Pfade umwandeln

  Alt 15. Jul 2005, 23:22
Hallo,

ich habe hier diesen Code gefunden der den Pfad zu gemappten Netzlaufwerken ausgibt. Ich habe diesen Code ganz minimal abgeändert um dann mit meiner Funktion komplette Pfade zu übergeben die dann in einen UNC-Pfad umgewandelt werden können.

Vielleicht kann es ja noch einer gebrauchen.

Delphi-Quellcode:
uses
  ...StrUtils;

function ResolveShareName (LocalDevice : String) : String;
var
  pLocName : PChar;
  pShareName : PChar;
  FuncResult : DWORD;
  BufLength : Cardinal;
begin
  // Speicher für die Strings allozieren!
  pLocName := StrAlloc(255);
  pShareName := StrAlloc(255);
  // String in PString kopieren
  StrPCopy (pLocName, LocalDevice);
  BufLength := 255;
  FuncResult := WNetGetConnection(pLocName,pShareName,BufLength);
  if FuncResult <> NO_ERROR then
    Result := pLocName
  else
    Result := pShareName;
  // aufräumen!
  StrDispose (pShareName);
  StrDispose (pLocName);
end;

function ConvertPathToUNC (FileName : String) : String;
var
  Drive, UNC_PATH : String;
  PosDrive : Integer;
begin
  PosDrive := Pos(':\', FileName);
  while PosDrive > 0 do
    begin
      Drive := Copy (FileName, PosDrive - 1, 2);
      if GetDriveType(PChar(Drive)) = DRIVE_REMOTE then
        begin
          UNC_PATH := ResolveShareName (Drive);
          Delete (FileName, PosDrive - 1, 2);
          Insert (UNC_PATH, FileName, PosDrive - 1);
          PosDrive := Pos(':\', FileName);
        end
      else
        begin
          PosDrive := PosEx(':\', FileName, PosDrive + 1);
        end;
    end;
  Result := FileName;
end;
Aufruf wäre bspw. so:

showmessage(ConvertPathToUNC('S:\Test\Test.txt')); Als Ergebnis käme dann folgendes raus:

'\\Server\Test\Test.txt'
  Mit Zitat antworten Zitat
Antwort Antwort


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 20:12 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