【问题标题】:Accessing files through a physical path in Xamarin.Android通过 Xamarin.Android 中的物理路径访问文件
【发布时间】:2018-04-16 23:21:08
【问题描述】:

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

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

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

是否可以在部署时以某种方式创建一个文件夹,我的文件在其中部署并通过静态路径访问?

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

谢谢!

【问题讨论】:

  • 您需要以编程方式将 Android 资产复制到应用沙箱的 Data 或 Cache 目录,并将您的库传递给该路径
  • @SushiHangover 这很有意义。谢谢。

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


【解决方案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");

如果还有什么问题,请告诉我。

【讨论】:

    猜你喜欢
    • 2021-06-01
    • 1970-01-01
    • 1970-01-01
    • 2017-07-08
    • 2020-01-28
    • 1970-01-01
    • 2019-06-30
    • 2023-03-05
    • 1970-01-01
    相关资源
    最近更新 更多