首页 > 解决方案 > C#:在 Android 上复制资产

问题描述

我尝试使用 Xamarin 开发 Android 应用程序。我构建了 APK,但无法访问保存一些文件夹和文件的资产。我需要将这些文件夹和文件从 Assets 复制到 Android 设备的应用程序目录中,并且可以随时访问它们。

请帮助(我需要一个简单的 CSharp 功能,将 Assets 文件复制到 android 设备。我将感谢任何支持。

标签: c#androidvisual-studioxamarin.androidassets

解决方案


您可以先查看 使用 Xamarin.Android使用 Android 资产的文件存储和访问。

这是一个简单的示例:

public static async Task CopyFile(Activity activity)
{
    var filePath = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.Personal), "YOUR_FILENAME");

    if (!File.Exists(filePath))
    {
        try
        {
            using (var fileAssetsStream = activity.Assets.Open("YOUR_FILENAME"))
            using (var fileStream = new FileStream(filePath, FileMode.OpenOrCreate))
            {
                var buffer = new byte[1024];

                int b = buffer.Length;
                int length;

                while ((length = await fileAssetsStream.ReadAsync(buffer, 0, b)) > 0)
                {
                    await fileStream.WriteAsync(buffer, 0, length);
                }
            }
        }
        catch (Exception ex)
        {
            //Handle exceptions
        }
    }
}

不要忘记请求WRITE_EXTERNAL_STORAGE 运行时权限


推荐阅读