示例#1
0
        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);
                }
            }
        }
示例#2
0
 extern static IntPtr CFURLCreateFromFSRef(IntPtr allocator, ref FSRef fsref);
示例#3
0
 static extern OSStatus LSGetApplicationForURL(IntPtr inURL, RolesMask inRoleMask, out FSRef outAppRef, out IntPtr outAppURL);