Esempio n. 1
0
        public override string GetMimeType(string path)
        {
            string extension             = NSUrl.FromString(path).PathExtension;
            string uniformTypeIdentifier = UTType.CreatePreferredIdentifier(UTType.TagClassFilenameExtension, extension, null);

            return(UTType.GetPreferredTag(uniformTypeIdentifier, UTType.TagClassMIMEType));
        }
Esempio n. 2
0
        public void GetPreferredTag()
        {
            // This test may fail in the simulator, if the architecture of the simulator isn't the native one (say running x86_64 on an M1 machine),
            // so just skip this test for the simulator.
            TestRuntime.AssertIfSimulatorThenARM64();

            Assert.NotNull(UTType.GetPreferredTag(UTType.PDF, UTType.TagClassFilenameExtension), "GetPreferredTag");
        }
Esempio n. 3
0
        private void HandleImage(IEnumerable <PHObject> images)
        {
            foreach (PHAsset image in images)
            {
                if (image.MediaType == PHAssetMediaType.Image)
                {
                    PHImageRequestOptions options = new PHImageRequestOptions()
                    {
                        NetworkAccessAllowed = false,
                        ResizeMode           = PHImageRequestOptionsResizeMode.Exact,
                        Version = PHImageRequestOptionsVersion.Original
                    };

                    PHImageManager.DefaultManager.RequestImageData(image, options, async(d, t, o, i) =>
                    {
                        string path     = ((NSUrl)i["PHImageFileURLKey"])?.Path;
                        string mimeType = UTType.GetPreferredTag(t, UTType.TagClassMIMEType);

                        await _probe.CreateAndStoreDatumAsync(path, mimeType, (DateTime)image.CreationDate);
                    });
                }
                else if (image.MediaType == PHAssetMediaType.Video)
                {
                    PHVideoRequestOptions options = new PHVideoRequestOptions()
                    {
                        NetworkAccessAllowed = false,
                        Version = PHVideoRequestOptionsVersion.Original
                    };

                    PHImageManager.DefaultManager.RequestAvAsset(image, options, async(a, _, i) =>
                    {
                        if (a is AVUrlAsset urlAsset)
                        {
                            string path                  = urlAsset.Url.Path;
                            string extension             = urlAsset.Url.PathExtension;
                            string uniformTypeIdentifier = UTType.CreatePreferredIdentifier(UTType.TagClassFilenameExtension, extension, null);
                            string mimeType              = UTType.GetPreferredTag(uniformTypeIdentifier, UTType.TagClassMIMEType);

                            await _probe.CreateAndStoreDatumAsync(path, mimeType, (DateTime)image.CreationDate);
                        }
                    });
                }
            }
        }
Esempio n. 4
0
        public static string ToMime(this string uti)
        {
            var result = UTType.GetPreferredTag(uti, UTType.TagClassMIMEType);

            if (result == null)
            {
                if (uti == UTType.URL || uti == UTType.FileURL)
                {
                    return("text/url");
                }
                if (uti == UTType.UTF8PlainText || uti == UTType.Text || uti == UTType.PlainText)
                {
                    return("text/plain");
                }
                System.Console.WriteLine("Unknown UTI: " + uti);
                return(null);
            }
            return(result.ToLower());
        }
Esempio n. 5
0
        public string GetMimeType(string fileUriOrExt)
        {
            if (String.IsNullOrWhiteSpace(fileUriOrExt))
            {
                return(null);
            }

            string extension = Path.GetExtension(fileUriOrExt);

            if (extension == null)
            {
                return(null);
            }

            var uti      = UTType.CreatePreferredIdentifier(UTType.TagClassFilenameExtension, extension.Substring(1), null);
            var mimeType = UTType.GetPreferredTag(uti, UTType.TagClassMIMEType);

            return(mimeType);
        }
Esempio n. 6
0
        public Tuple <byte[], string, string> ReadFile(string file)
        {
            Tuple <byte[], string, string> result = null;
            var asset = PHAsset.FetchAssets(new[] { new NSUrl(file) }, null).LastObject as PHAsset;

            if (asset != null)
            {
                var options = new PHImageRequestOptions {
                    Synchronous = true
                };
                PHImageManager.DefaultManager.RequestImageData(asset, options, (data, dataUti, orientation, info) => {
                    var extension = new NSUrl(dataUti).PathExtension;
                    var uti       = UTType.CreatePreferredIdentifier(UTType.TagClassFilenameExtension, extension, null);
                    var mime      = UTType.GetPreferredTag(uti, UTType.TagClassMIMEType);
                    var dataBytes = new byte[data.Length];
                    Marshal.Copy(data.Bytes, dataBytes, 0, Convert.ToInt32(data.Length));
                    result = new Tuple <byte[], string, string>(dataBytes, dataUti, mime);
                });
            }
            return(result);
        }
Esempio n. 7
0
 public void GetPreferredTag()
 {
     Assert.NotNull(UTType.GetPreferredTag(UTType.PDF, UTType.TagClassFilenameExtension), "GetPreferredTag");
 }