extern static IntPtr CFURLCreateFromFSRef (IntPtr allocator, ref FSRef fsref);
public static string FSRefToString (ref FSRef fsref) { IntPtr url = IntPtr.Zero; IntPtr str = IntPtr.Zero; try { url = CFURLCreateFromFSRef (IntPtr.Zero, ref fsref); if (url == IntPtr.Zero) return null; str = CFURLCopyFileSystemPath (url, CFUrlPathStyle.Posix); if (str == IntPtr.Zero) return null; return FetchString (str); } finally { if (url != IntPtr.Zero) Release (url); if (str != IntPtr.Zero) Release (str); } }
static extern OSStatus LSGetApplicationForURL (IntPtr inURL, RolesMask inRoleMask, out FSRef outAppRef, out IntPtr outAppURL);
private extern static IntPtr CFURLCreateFromFSRef(IntPtr allocator, ref FSRef fsRef);
private extern static short FSFindFolder(MacDomains vRefNum, uint folderType, bool createFolder, out FSRef foundRef);
private static extern short FSFindFolder(MacDomains vRefNum, uint folderType, bool createFolder, out FSRef foundRef);
private static extern IntPtr CFURLCreateFromFSRef(IntPtr allocator, ref FSRef fsRef);