gpt4 book ai didi

c# - 无法使用 PCLStorage 或 Xamarin Forms Labs 在 Android 文件系统中创建文件夹/文件

转载 作者:塔克拉玛干 更新时间:2023-11-02 09:07:55 25 4
gpt4 key购买 nike

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

首先,我尝试通过 Xamarin Forms Labs 创建的 FileManager 类使用 System.IO 命名空间。我通过“/storage/emulated/0/`”路径传递的函数 fragment 。

        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);
}

这没有用,所以我选择使用 PCLStorage 库进行跨平台文件操作。我试过这段代码。

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

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

所以错误似乎不是因为正在使用的库而发生的,而是 Android 特有的。我已经在 list 中读取和写入外部存储。所以问题是。应用程序是否有权在存储设备的根级别创建文件或文件夹,或者它是否必须在特定位置创建它,例如 Android/data/packagename

最佳答案

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);
}

关于c# - 无法使用 PCLStorage 或 Xamarin Forms Labs 在 Android 文件系统中创建文件夹/文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30361892/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com