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)); }
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"); }
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); } }); } } }
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()); }
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); }
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); }
public void GetPreferredTag() { Assert.NotNull(UTType.GetPreferredTag(UTType.PDF, UTType.TagClassFilenameExtension), "GetPreferredTag"); }