即使Xamarin Android中没有文件,文件也存在

时间:2018-12-06 20:58:41

标签: android xamarin xamarin.android

我在Asset Folder中有一个数据库,我正在尝试使用以下代码将其复制到应用程序文件夹中。但它始终为return false(意味着文件存在),我尝试卸载该应用程序并再次运行调试,但它始终返回false

if (!File.Exists(Path.Combine(System.Environment.GetFolderPath(System.Environment.SpecialFolder.Personal), "mydatabase.db"))
{
    using (var binaryReader = new BinaryReader(Application.Context.Assets.Open("mydatabase.db")))
    {
         using (var binaryWriter = new BinaryWriter(new FileStream(Path.Combine(System.Environment.GetFolderPath(System.Environment.SpecialFolder.Personal), "mydatabase.db"), FileMode.Create)))
         {
              byte[] buffer = new byte[2048];
              int length = 0;
              while ((length = binaryReader.Read(buffer, 0, buffer.Length)) > 0)
              {
                  binaryWriter.Write(buffer, 0, length);
              }
          }
     }
}

1 个答案:

答案 0 :(得分:0)

您是否检查过内部存储目录中是否确实没有该名称的文件?

您可以通过以下方式进行检查:

var appDir = System.Environment.GetFolderPath(System.Environment.SpecialFolder.Personal);
var files = Directory.GetFiles(appDir);

或通过使用Java.IO;

var appDir = context.FilesDir();
var files = appDir.ListFiles();

,您还可以使用上述代码片段的输出来检查文件是否存在。