我在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);
}
}
}
}
答案 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();
,您还可以使用上述代码片段的输出来检查文件是否存在。