Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Von BlockRead/BlockWrite wegkommen - IFileOperation steht bereit, aber kein CallBack (https://www.delphipraxis.net/190323-von-blockread-blockwrite-wegkommen-ifileoperation-steht-bereit-aber-kein-callback.html)

himitsu 25. Sep 2016 16:32

AW: Von BlockRead/BlockWrite wegkommen - IFileOperation steht bereit, aber kein CallB
 
Bei Google suchenUNC -> erster Link -> https://de.wikipedia.org/wiki/Unifor...ale_Ressourcen

dGeek 25. Sep 2016 16:45

AW: Von BlockRead/BlockWrite wegkommen - IFileOperation steht bereit, aber kein CallB
 
Meine stupide Lösung:

Delphi-Quellcode:
function getComputerName: string;
var
 Len: DWord;
begin
 Len := MAX_COMPUTERNAME_LENGTH + 1;
 SetLength(Result, Len);

 if Windows.getComputerName(PChar(Result), Len) then
  SetLength(Result, Len)
 else
  Result := '';
end;

function getUNCPath(aPath: string; aComputerName: string = ''): string;
var
 sTmp: string;
begin

 if aComputerName <> '' then
  sTmp := aComputerName
 else
  sTmp := getComputerName;

 Result := '\\' + sTmp + '\' + StringReplace(aPath, ':', '$');
end;

// Aufruf (bei einmaligem Aufruf)
showmessage( getUNCPath('D:\verzeichnis1\datei1.txt' );

// oder (bei mehreren Aufrufen in einer Schleife)
sComputerName := getComputer; // vor der Schleife

showmessage( getUNCPath('D:\verzeichnis1\datei1.txt', sComputerName ); // in der Schleife

// Vorher:
// D:\verzeichnis1\datei1.txt

// Nachher:
// \\DeinComputer\D$\verzeichnis1\datei1.txt

Dalai 25. Sep 2016 16:58

AW: Von BlockRead/BlockWrite wegkommen - IFileOperation steht bereit, aber kein CallB
 
Wieso Computername rausfinden? Es geht nur um das Prefix \\?\.

Grüße
Dalai

dGeek 25. Sep 2016 17:26

AW: Von BlockRead/BlockWrite wegkommen - IFileOperation steht bereit, aber kein CallB
 
Mit dem Fragezeichen funktioniert bei mir nicht. Da meckert selbst der Windows Explorer:

Zitat:

Die Datei "\\?\D$\verzeichnis1\" wurde nicht gefunden. Überprüfen Sie die Schreibweise, und wiederholen Sie den Vorgang.
\\MeinComputer\D$\verzeichnis1\ funktioniert ohne Probleme im Webbrowser und Windows Explorer.

Tante Edit: gerade gesehen, dass man mit ?-Prefix das $ durch ein : austauschen muss (funktioniert dann aber nur im Windows Explorer und nicht im Webbrowser).

himitsu 25. Sep 2016 17:52

AW: Von BlockRead/BlockWrite wegkommen - IFileOperation steht bereit, aber kein CallB
 
Weil der Webbroser, ohne Angabe eines Protokols, natürlich das HTTP-Protokoll verwendet und das ein Link im File-Protokoll wäre.

Und NEIN, es wird kein : durch $ ersetzt, denn D: hat mit D$ rein garnichts zu tun.
Es wäre auch zu geil, wenn wer die Standardfreigaben löscht oder sie anders/ordentlich benamt.

dGeek 25. Sep 2016 17:54

AW: Von BlockRead/BlockWrite wegkommen - IFileOperation steht bereit, aber kein CallB
 
Zitat:

Zitat von himitsu (Beitrag 1348805)
Weil der Webbroser, ohne Angabe eines Protokols, natürlich das HTTP-Protokoll verwendet und das ein Link im File-Protokoll wäre.

Wieder was dazu gelernt, wie Webbrowser funktionieren.


Alle Zeitangaben in WEZ +1. Es ist jetzt 02:25 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