android - Assets 复制未完成

标签 android xamarin

我的 Assets 文件夹中有一个 zip 文件,当我试图将此文件复制到外部下载文件夹时,我无法打开它。似乎文件复制没有完成,因为它比应该的少了几 kb。

我正在使用以下代码来实现这一点:

using (Stream stream = activity.Assets.Open (PINPAD_FOLDER + "/" + file)) 
{
   stream.CopyTo (System.IO.File.Create (outputPath));
   stream.Close ();
}

输出文件夹是:

string outputPath = Path.Combine (Android.OS.Environment.GetExternalStoragePublicDirectory(Android.OS.Environment.DirectoryDownloads).AbsolutePath, filename);

我所需要的只是从我的应用程序中获取此 zip 文件的路径,这似乎无法从 Asset 目录中获取,因为我们只能返回一个流。因此,我必须将它复制到我知道其路径的目录中。

最佳答案

试试这个

using (Stream stream = activity.Assets.Open (PINPAD_FOLDER + "/" + file)) 
{
    using(var fileStream = System.IO.File.Create (outputPath))
    {
        stream.CopyTo(fileStream );
    }
}

关于android - Assets 复制未完成,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22485767/

相关文章:

ios - Xamarin - 获取保存到照片库的图像的文件路径

c# - 我在 Entitlement plist 中为我的移动应用程序添加了钥匙串(keychain)支持但无法在 xamarin 中准备发布版本

ios - Xamarin 统一 API : Native library binding: NSUInteger vs. 枚举

android - 如何在android中沿圆圈移动图像?

android - 可检查 View 中的 setChecked() 方法每次扰乱布局时都会触发两次

android - 发送电子邮件 Intent 选择器

java - 按钮与底部对齐,从 ImageView 中隐藏

java - Realm 配置对象类型 java

android - 选择语句中的三元运算符

ios - Mvvm 跨 iOS : how to dismiss a view controller when use IMvxModelTouchView