0

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

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

但是路径的结果是

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

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

我在互联网上搜索过,但仍然不知道。谁能帮我?

预先感谢。

4

1 回答 1

0

使用NSSearchPathForDirectoriesInDomains和 native 代码一样可以得到路径。搜索后,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

于 2020-05-20T05:59:38.790 回答