通过Xamarin.Android中的物理路径访问文件

时间:2018-04-16 23:21:09

标签: c# android .net xamarin xamarin.android

目前我正在使用Xamarin.Android制作我的应用程序,需要在手机上访问一些文件,而不是在APK内。

我的文件当前位于项目的“Assets”文件夹中,并标记为“AndroidAsset”,但问题是我无法获取这些文件的路径,因为它们显然嵌入了APK。

我的要求是我需要能够通过一个简单的路径从我的应用程序访问文件,因为我有一个第三方库需要一个路径来读取它需要读取的特定文件。

是否有可能以某种方式在部署中创建文件夹,我的文件在那里部署并通过静态路径访问?

如果没有,在将路径传递到需要特定文件路径的第三方库方面有哪些替代方案。

谢谢!

1 个答案:

答案 0 :(得分:-1)

如果要从“资产”文件夹访问文件,则需要将该文件复制到以下位置 -

var documentsFolderPath = System.Environment.GetFolderPath(System.Environment.SpecialFolder.MyDocuments);

{var destinationPath = Path.Combine(documentsFolderPath,“DesiredFileName.extention”);

        var file = new FileInfo(destinationPath);
        if (!file.Exists || file.Length <= 0)
        {
            CreateDatabase(destinationPath);
        }

}

public void CreateDatabase(string destinationPath)         {

        using (var asset = Assets.Open("YourFileName.extention"))
        using (var dest = File.Create(destinationPath))
            asset.CopyTo(dest);
    }

使用下面的代码来访问文件 -

    string documentsPath = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments); // Documents folder
    var path = Path.Combine(documentsPath, "DesiredFileName.extention");

如果有任何其他问题请告诉我。