【发布时间】:2019-11-14 10:40:04
【问题描述】:
我正在尝试将我的数据库文件从隔离存储复制到下载文件夹(或用户可以访问的任何文件夹)。
目前我的数据库存储在:
/data/user/0/com.companyname.appname/files/Databases/MyDatabase.db
我尝试使用此代码:
public string GetCustomFilePath(string folder, string filename)
{
var docFolder = System.Environment.GetFolderPath(System.Environment.SpecialFolder.Personal);
var libFolder = Path.Combine(docFolder, folder);
if (!Directory.Exists(libFolder))
Directory.CreateDirectory(libFolder);
return Path.Combine(libFolder, filename);
}
var bas = GetDatabaseFilePath("MyDatabase.db");
var des = Path.Combine(Android.OS.Environment.DirectoryDownloads, "MyDatabase.db");
File.Copy(bas, des);
Android.OS.Environment.DirectoryDownloads 属性返回路径 Download,即下载文件夹的名称。
但是File.Copy() 抛出一个异常告诉
System.IO.DirectoryNotFoundException:找不到目标目录: 下载。
我之前尝试过像这样使用斜线:/Download/MyDatabase.db,但没有运气。
有没有办法复制这样的文件?我需要任何许可吗?
【问题讨论】:
-
您不能只写入下载文件夹。您可以使用 DownloadManager 将文件保存到 Downloads 文件夹
-
您需要外部存储权限才能写入“下载”,一旦获得,您可以使用
Android.OS.Environment.ExternalStorageDirectory获取下载文件夹的路径并使用标准.NetFile.Copyapi ...
标签: c# xamarin xamarin.forms xamarin.android file-copying