如何将照片从tmp目录文件夹保存到xamarin iOS中的库/文档文件夹中

问题描述 投票:0回答:1

我想将我的照片从temp文件夹保存到Xamarin IOS的​​库或文档文件夹中。我使用iPhone Simulator进行开发,并使用Xamarin iOS本机进行开发。首先,获取URL路径,然后更改为真实路径。到目前为止,我已经找到了真正的路径:

NSUrl myFileUrl = new NSUrl(ImageValue);
            Console.WriteLine(myFileUrl.AbsoluteString);
            FromGalleryPath= myFileUrl.Path;

但是路径的结果是

.../Application/xxx/tmp/5B4AFD16E192.jpeg

我不想将图像存储在tmp中-> Application/xxx/tmp/,因为每次我重新启动模拟器时,图像就消失了!如何将图像保存到库/文档文件夹中,以及如何从库/文档文件夹中检索路径?

我已经在互联网上搜索了,但还是不知道。谁能帮我吗?

谢谢。

c# ios xamarin xamarin.ios
1个回答
0
投票

使用NSSearchPathForDirectoriesInDomains与本地代码相同,可以获取路径。搜索后,NSSearchPath可以实现。尝试使用以下代码来访问Library/路径:

创建静态类NSSearchPath

public static class NSSearchPath
{
    public static string[] GetDirectories(NSSearchPathDirectory directory, NSSearchPathDomain domainMask, bool expandTilde = true)
    {
        return NSArray.StringArrayFromHandle(NSSearchPathForDirectoriesInDomains((nuint)(ulong)directory, (nuint)(ulong)domainMask, expandTilde));
    }

    [DllImport(Constants.FoundationLibrary)]
    static extern IntPtr NSSearchPathForDirectoriesInDomains(nuint directory, nuint domainMask, bool expandTilde);
}

按如下使用:

string[] paths = NSSearchPath.GetDirectories(NSSearchPathDirectory.LibraryDirectory, NSSearchPathDomain.All);
Console.WriteLine(paths[0]);

输出日志:

2020-05-20 13:52:11.254843+0800 AppIOS2[4340:108912] /Users/xxxx/Library/Developer/CoreSimulator/Devices/4C2C6DD2-3D42-46EA-8078-D6E0B851AEDD/data/Containers/Data/Application/DB913987-0E55-4603-8993-ED7B3F83CF85/Library

参考文档:https://docs.microsoft.com/en-us/xamarin/ios/app-fundamentals/file-system#application-directories

© www.soinside.com 2019 - 2024. All rights reserved.