【问题标题】:NSURL to File Path MonotouchNSURL 到文件路径 Monotouch
【发布时间】:2011-10-02 03:52:21
【问题描述】:

我是 iphone 开发新手。我正在用 Mono touch 编写我的应用程序。

我正在尝试从资产库中获取一张我可以成功完成的照片,但是我将路径作为 URL“assets-library://asset/asset.JPG”获取。我想做一个要求文件路径的 FileStream 读取。如何将 NSURL 转换为文件路径?

我使用了asset.DefaultRepresentation.Url.AbsoluteString,它给出了以下文件路径: assets-library://asset/asset.JPG?id=1000000001&ext=JPG

然后当它遇到 FileStream(filePath, FileMode.Open, FileAccess.Read) 时,它会给出一个异常,指出找不到路径的一部分。

请帮忙:)

【问题讨论】:

    标签: file path xamarin.ios nsurl


    【解决方案1】:

    您从资产库获得的 url 不是文件路径。它是资产库中资源的 url,因此您不能使用 FileStream 读取其数据。

    如果资产是图像,您可以像这样将其内容获取到 NSData 对象:

    UIImage image = UIImage.FromImage(asset.DefaultRepresentation.GetImage());
    NSData data = image.AsJPEG();
    

    【讨论】:

    • 如果您使用的是 UIImagePickerController,您可以使用非常相似的方法来获取文件(在 FinishedPickingMedia 覆盖中):UIImage image = (UIImage)info.ObjectForKey(new NSString("UIImagePickerControllerOriginalImage"));
    • 可以,但是这里没有用到 UIImagePickerController。图像是从资产库中检索的。 ;)
    • 我知道 - 如果有人偶然发现此页面正在寻找 UIImagePickerController 示例;)
    【解决方案2】:

    您可以使用两种不同的静态方法来加载图像。 FromImage 和 FromBundle。第一个是异步的。后者是同步的(当加载图像时,它由 iOS 兑现)。两者都采用您的图像的路径。

    使用这些方法时,属性 image 必须设置为 content 属性。右键单击图像,属性 -> 将构建操作设置为内容。

    【讨论】:

      猜你喜欢
      • 2014-05-04
      • 2011-07-28
      • 2011-10-20
      • 1970-01-01
      • 2013-10-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-08-17
      相关资源
      最近更新 更多