C#:在 Android 上复制资产

Posted

技术标签:

【中文标题】C#:在 Android 上复制资产【英文标题】:C#: copying Assets on Android 【发布时间】:2021-09-11 01:22:55 【问题描述】:

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

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

【问题讨论】:

【参考方案1】:

您可以先查看File Storage and Access with Xamarin.Android 和Using Android Assets。

这是一个简单的示例:

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_STORAGEruntime permissions。

【讨论】:

以上是关于C#:在 Android 上复制资产的主要内容,如果未能解决你的问题,请参考以下文章