Mac OS X の実行時に、特定のパスがネットワーク パスかローカル パスかをプログラムで判断するにはどうすればよいですか?
例: 1. /Volumes/abc/xyz (smb を使用してマウント) 2. ../test/pqr (アプリケーションは共有ネットワーク パス上にあるため、現在の作業ディレクトリもネットワーク パスであり、したがって相対パスもネットワーク パス)
Windows と同様に、以下のコードは、pPath がネットワーク共有パス (* 1. \TallyDT100\c\test\file.txt 2. z:\test\file.txt のように z: がマップされている場合のネットワーク パス) であるかどうかを判断します。いくつかのネットワーク パス)。
UNIVERSAL_NAME_INFO * universalname = NULL; ///< for getting the universal path name of file on network share.
DWORD retval; ///< for getting the return value from WNetGetUniversalName
DWORD length = MAX_PATH_LEN; ///< length of universal name which would be made.
// The memory for getting the universal name information is allocated.
universalname = (UNIVERSAL_NAME_INFO *) Calloc (MAX_PATH_LEN * sizeof (Char));
retval = WNetGetUniversalName (pPath, UNIVERSAL_NAME_INFO_LEVEL, universalname, &length);
Free (universalname);
// NO_ERROR is returned only when it's drive mapped for shared network folder.
return (NO_ERROR == retval) ? true : false;