无法使用PCLStorage或Xamarin Forms Labs在Android文件系统中创build文件夹/文件

我开发一个使用Xamarin平台的Android应用程序,我试图创build一个文件夹在本地存储,但我没有成功。

首先,我尝试通过由Xamarin Forms Labs创build的FileManager类来使用System.IO命名空间。 我正在传递“/ storage / emulated / 0 /`”path的函数的一小段代码。

public void CreateDirectory(string path) { this.isolatedStorageFile.CreateDirectory(path); } public Stream OpenFile(string path, FileMode mode, FileAccess access) { return (Stream)this.isolatedStorageFile.OpenFile(path, (System.IO.FileMode)mode, (System.IO.FileAccess)access); } 

这不起作用,所以我select使用PCLStorage库进行跨平台文件操作。 我试过这个代码。

 IFolder rootFolder = FileSystem.Current.LocalStorage; folder = await rootFolder.CreateFolderAsync("wakesocial", CreationCollisionOption.OpenIfExists); 

没有工作。 我导航到内部存储的根目录,我没有看到该文件夹​​。

所以错误似乎没有发生,因为在使用的库,但特定于Android的东西。 我已经读取和写入清单中的外部存储。 所以问题是。 应用程序是否有权在存储设备的根目录级创build文件或文件夹,还是必须在特定的位置创build该文件或文件夹,例如Android / data /包名

Related of "无法使用PCLStorage或Xamarin Forms Labs在Android文件系统中创build文件夹/文件"

 string folderPath = Environment.ExternalStorageDirectory.AbsolutePath; //Android public async Task PCLGenaratePdf(string folderPath ) { IFolder rootFolder = await FileSystem.Current.GetFolderFromPathAsync(folderPath ); IFolder folder = await rootFolder.CreateFolderAsync("folder", CreationCollisionOption.OpenIfExists); IFile file = await folder.CreateFileAsync("file.pdf", CreationCollisionOption.ReplaceExisting); } 

在Android上,PCL Storage的LocalStorage文件夹对应于“我的文档”特殊文件夹 。

我不确定你想要创build一个文件夹的path,但是如果你知道path并想使用PCL存储,你应该能够使用FileSystem.Current.GetFolderFromPathAsync来获得一个PCL存储IFolder对应于现有的文件夹。