Я пытаюсь скопировать файл своей базы данных из изолированного хранилища в папку «Загрузка» (или любую другую папку, к которой пользователь имеет доступ).
В настоящее время моя база данных хранится в: /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: Destination directory not found: Download
.
Я пытался использовать косую черту раньше, как это: /Download/MyDatabase.db
без удачи.
Есть ли способ скопировать такой файл? Нужно ли мне какое-либо разрешение?