devxlogo

Universal Naming Convention (UNC)

Universal Naming Convention (UNC)

Question:
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 callWNetGetUniversalName. 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 thatshould 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;

Play around with this and see what you come up with.

devxblackblue

About Our Editorial Process

At DevX, we’re dedicated to tech entrepreneurship. Our team closely follows industry shifts, new products, AI breakthroughs, technology trends, and funding announcements. Articles undergo thorough editing to ensure accuracy and clarity, reflecting DevX’s style and supporting entrepreneurs in the tech sphere.

See our full editorial policy.

About Our Journalist