在 Android 文件系统中查找我的应用程序保存的文件
Finding a saved file from my app in the Android file system
我使用 XmlSerializer 和 StreamWriter 创建了一个新文件来保存数据。从我对我的应用程序所做的测试来看,使用此方法存储和恢复数据是有效的。出于好奇,我试图找到在 Android 文件系统中创建的文件,但没有成功。我尝试使用 Android 应用程序(ES 文件资源管理器)和桌面应用程序(在 Mac、Android 文件传输上)找到它。在这两种情况下,我都无法找到创建的文件。
XmlSerializer xmlSerializer = new XmlSerializer (typeof(GAData));
TextWriter writer = new StreamWriter (FilePath);
xmlSerializer.Serialize (writer, this);
writer.Close ();
Console.WriteLine ("Data saved");
这里定义了 FilePath :
// Determining the path
var documentsPath = Environment.GetFolderPath (Environment.SpecialFolder.Personal);
FilePath = Path.Combine (documentsPath, "AppData.txt");
Console.WriteLine (Path.GetFullPath (FilePath));
最后一个 Console.WriteLine 正在记录:/data/data/com.domain.myapp/files/AppData.txt
完全相同的代码在 iOS 上运行起来就像一个魅力,我可以使用 Mac 上的应用程序在文件系统中查看文件。为什么我可以在 Android 文件系统中找到它?或者,如果它在其他地方,它保存在哪里?
您应该使用 ContextWrapper 中的 FilesDir
Path.Combine(FilesDir.Path , "MyFile.text");
例如,将资产文件夹中的文件复制到本地文件系统
if (!File.Exists(Path.Combine(FilesDir.Path , "myFile.Text")))
{
using (var asset = Assets.Open("TextToCopyTo.txt"))
{
using (var dest = File.Create(Path.Combine(FilesDir.Path , "MyFile.text")))
{
asset.CopyTo(dest);
}
}
}
/data/data/com.domain.myapp/files/AppData.txt
那是私人内存。私有,因为只有您的应用可以访问。
您的应用可以使用 getFilesDir()
访问它。
ES File Explorer 等其他应用无法访问。
我使用 XmlSerializer 和 StreamWriter 创建了一个新文件来保存数据。从我对我的应用程序所做的测试来看,使用此方法存储和恢复数据是有效的。出于好奇,我试图找到在 Android 文件系统中创建的文件,但没有成功。我尝试使用 Android 应用程序(ES 文件资源管理器)和桌面应用程序(在 Mac、Android 文件传输上)找到它。在这两种情况下,我都无法找到创建的文件。
XmlSerializer xmlSerializer = new XmlSerializer (typeof(GAData));
TextWriter writer = new StreamWriter (FilePath);
xmlSerializer.Serialize (writer, this);
writer.Close ();
Console.WriteLine ("Data saved");
这里定义了 FilePath :
// Determining the path
var documentsPath = Environment.GetFolderPath (Environment.SpecialFolder.Personal);
FilePath = Path.Combine (documentsPath, "AppData.txt");
Console.WriteLine (Path.GetFullPath (FilePath));
最后一个 Console.WriteLine 正在记录:/data/data/com.domain.myapp/files/AppData.txt
完全相同的代码在 iOS 上运行起来就像一个魅力,我可以使用 Mac 上的应用程序在文件系统中查看文件。为什么我可以在 Android 文件系统中找到它?或者,如果它在其他地方,它保存在哪里?
您应该使用 ContextWrapper 中的 FilesDir
Path.Combine(FilesDir.Path , "MyFile.text");
例如,将资产文件夹中的文件复制到本地文件系统
if (!File.Exists(Path.Combine(FilesDir.Path , "myFile.Text")))
{
using (var asset = Assets.Open("TextToCopyTo.txt"))
{
using (var dest = File.Create(Path.Combine(FilesDir.Path , "MyFile.text")))
{
asset.CopyTo(dest);
}
}
}
/data/data/com.domain.myapp/files/AppData.txt
那是私人内存。私有,因为只有您的应用可以访问。
您的应用可以使用 getFilesDir()
访问它。
ES File Explorer 等其他应用无法访问。