2009. április 2., csütörtök
Universal Naming Convention (UNC)
Problem/Question/Abstract:
For file-based applications, how is the Universal Naming Convention obtained for path names?
Answer:
To get the UNC name of a drive-based path, use the Windows API call WNetGetUniversalName. This function takes a drive-based path (i.e., fully qualified file name) and returns its UNC equivalent.
Be forewarned, though: This call is not supported by Windows 95. Here's something that should work if you're in NT:
function GetUNCName(PathStr: string): string;
var
bufSize: DWord;
buf: TUniversalNameInfo;
msg: string;
begin
bufSize := SizeOf(TUniversalNameInfo);
if (WNetGetUniversalName(PChar(PathStr), UNIVERSAL_NAME_INFO_LEVEL,
buf, bufSize) > 0) then
case GetLastError of
ERROR_BAD_DEVICE: msg := 'ERROR_BAD_DEVICE';
ERROR_CONNECTION_UNAVAIL: msg := 'ERROR_CONNECTION_UNAVAIL';
ERROR_EXTENDED_ERROR: msg := 'ERROR_EXTENDED_ERROR';
ERROR_MORE_DATA: msg := 'ERROR_MORE_DATA';
ERROR_NOT_SUPPORTED: msg := 'ERROR_NOT_SUPPORTED';
ERROR_NO_NET_OR_BAD_PATH: msg := 'ERROR_NO_NET_OR_BAD_PATH';
ERROR_NO_NETWORK: msg := 'ERROR_NO_NETWORK';
ERROR_NOT_CONNECTED: msg := 'ERROR_NOT_CONNECTED';
end
else
msg := buf.lpUniversalName;
Result := msg;
end;
Feliratkozás:
Megjegyzések küldése (Atom)
Nincsenek megjegyzések:
Megjegyzés küldése