gpt4 book ai didi

Xamarin.Forms - 如何访问/data/user/0/com.companyname.notes/files/.local/share/

转载 作者:行者123 更新时间:2023-12-04 12:37:36 24 4
gpt4 key购买 nike

我关注了一个小tutorial of Microsoft.
这基本上将您的文本输入保存到设备的内部存储器中。

String _filename = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData), "Notes.txt");

结果: /data/user/0/com.companyname.notes/files/.local/share/Notes.txt为了我。

现在,虽然一切正常,但我想在文件夹中看到这个 Notes.txt 文件。

我进行了广泛的搜索,但似乎找不到在我的设备上找到此文件的方法。
我可以转到 Android/data/com.companyname.notes/files 但随后我只看到一个 ._override_ 文件夹,其中包含应用程序项目文件,但没有 Notes.txt

有任何想法吗?

谢谢

最佳答案

从你的路径:/data/user/0/com.companyname.notes/files/.local/share/Notes.txt,我们可以知道你要访问内部存储,但是内部存储指的是非 volatile 存储器Android 分配给操作系统、APK 和单个应用程序。除了操作系统或应用程序外,无法访问此空间。所以你不能从内部存储中找到这个文本文件。

如果要查看文件,可以将此文件保存在 external storage
/storage/emulated/0/Android/data/com.companyname.app/files
有关内部存储的更多详细信息,请参阅:

https://docs.microsoft.com/en-us/xamarin/android/platform/files/

更新

如果要保存文本文件,则应在 AndroidManifest.xml 中声明外部存储的两个权限之一

<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

然后通过调用方法 Android.Content.Context.GetExternalFilesDir(string type) 找到私有(private)外部文件的主要位置。此方法将返回一个 Java.IO.File 对象,该对象表示应用程序的私有(private)外部存储目录。将 null 传递给此方法将返回应用程序的用户存储目录的路径。例如,对于包名为 com.companyname.app 的应用程序,私有(private)外部文件的“根”目录将是:

/storage/emulated/0/Android/data/com.companyname.app/files/

在 Forms 中,您需要创建新界面:
 public interface IFileSystem
{
string GetExternalStorage();
}

在Android中实现这个接口(interface):
[assembly: Dependency(typeof(FileSystemImplementation))]

命名空间 FileApp.Droid
{
公共(public)类 FileSystemImplementation : IFileSystem
{
公共(public)字符串 GetExternalStorage()
{
上下文上下文 = Android.App.Application.Context;
var filePath = context.GetExternalFilesDir("");
返回 filePath.Path;
}
}
}

现在您可以创建文本文件并将文本保存在此文件中:
 private async void Btn1_Clicked(object sender, EventArgs e)
{
var folderPath = DependencyService.Get<IFileSystem>().GetExternalStorage();
var file = Path.Combine(folderPath, "count.txt");

using (var writer = File.CreateText(file))
{
await writer.WriteLineAsync("123456789000000000000000000000000000000000000");
}
}

我做了一个样本:

https://github.com/CherryBu/FileApp

私有(private)外部存储目录的确切路径可能因设备和 Android 版本而异。

关于Xamarin.Forms - 如何访问/data/user/0/com.companyname.notes/files/.local/share/,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59719189/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com