正在编写一些Xamarin.iOS代码以创建目录搜索路径列表。
objective-c版本:
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
,我意识到NSSearchPathForDirectoriesInDomains
在Xamarin iOS中不可用,首先,我以为是我做错了什么,但是后来我用Google搜索它,发现与xamarin.ios无关的字面意思是有我不知道的等效于NSSearchPathForDirectoriesInDomains
的C#吗?还是我到底想念什么?
到目前为止,我在C#中的代码:
NSArray paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, true);
注意:没有为此提供的快速操作。
答案 0 :(得分:2)
Xamarin iOS方法的名称与关联的obj c方法的名称并不罕见,因此有时必须查看xamarin macios绑定的来源。我发现一个静态方法GetDirectories使用了您所追求的objc方法:
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[] directories = NSSearchPath.GetDirectories(NSSearchPathDirectory.UserDirectory, NSSearchPathDomain.All);