.NET MAUI - 如何写入 /storage/emulated/0/Documents?

问题描述 投票:0回答:1

我正在尝试将文件从我的应用程序文件夹复制到公共文档文件夹,以便我可以在需要时访问它。我正在为 Android 操作系统编写此代码。这是我到目前为止的代码:

string sourceDirectoryPath = Path.Combine(FileSystem.Current.AppDataDirectory, "Logs");

if (!Directory.Exists(sourceDirectoryPath))
{
    //No logs

    return;
}

string documentsFolder = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments);

string destinationDirectoryPath = Path.Combine(documentsFolder, "Logs");

if (!Directory.Exists(destinationDirectoryPath))
{
    Directory.CreateDirectory(destinationDirectoryPath);
}

foreach (string file in Directory.GetFiles(sourceDirectoryPath))
{
    string destinationFile = Path.Combine(destinationDirectoryPath, Path.GetFileName(file));
    File.Copy(file, destinationFile, overwrite: true);
}

我尝试过使用

Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments);
,但它指向
/data/user/0/MyApp/files/Documents
。如何使
documentsFolder
指向
/storage/emulated/0/Documents

c# android maui
1个回答
0
投票

当然,

Environment.SpecialFolder.MyDocuments;
将返回您应用程序的个人文档文件夹。

要获取公共文档文件夹路径,请尝试以下操作。

string documentsPath = string.empty;
#if ANDROID
 documentsPath = global::Android.OS.Environment.GetExternalStoragePublicDirectory(global::Android.OS.Environment.DirectoryDocuments)?.AbsolutePath;
#endif
© www.soinside.com 2019 - 2024. All rights reserved.