【问题标题】:C#-Xamarin : create a .txt file on DeviceC#-Xamarin:在设备上创建一个 .txt 文件
【发布时间】:2020-05-13 15:31:14
【问题描述】:

我是编程初学者。 我想在点击按钮时创建一个 .txt 文件。我怎么做? 我已经尝试了几个代码......但我的文件没有被创建。

甚至看不到模拟器中的文件夹(文件) 它告诉我我的文件在这里: /data/user/0/com.companyname.projektnetapp/files/.config/myfile.txt

这就是我正在尝试的。我错了吗?

        var docs = Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData);
        var filename = Path.Combine(docs, "myfile.txt");

        StreamWriter sw = new StreamWriter(filename);
        sw.WriteLine("hi");
        sw.Close();

        DisplayAlert(null, filename.ToString(), "ok");

【问题讨论】:

  • 您需要使用 adb 来访问您的设备/模拟器文件系统。
  • 仍然无法弄清楚.. 我想要的是在后台创建一个文件,仅此而已
  • “想不通”——这是什么意思?您的文件可能已创建,您只是看不到它,因为您使用了错误的工具。在您的代码中使用File.Exists 来验证文件是否已创建。如果您仍然有问题,则需要更具体地说明您尝试过的内容以及遇到的问题。
  • @lockinson 您好,共享代码没问题,只是在模拟器中看不到。因为它是一个隐藏文件夹。我已经更新了一个答案,你有时间可以看看。

标签: c# xamarin


【解决方案1】:

通过共享代码,您已成功创建并保存文件。那只是在模拟器(文件)中看不到,您可以使用以下代码读取文件:

string str = File.ReadAllText(filename);

File.Exists(filename);检查是否存在。

甚至看不到模拟器中的文件夹(文件)它告诉我我的文件在这里:/data/user/0/com.companyname.projektnetapp/files/.config/myfile.txt

这个文件在模拟器(Files)中看不到,因为/.config是一个隐藏文件夹。

不过,你可以使用adb shell命令看到,在PC中打开Terminal

adb root
adb shell
C:\Users\juniorj>adb shell
generic_x86:/data/user/0/WorkingWithFiles.Droid/files # ls
generic_x86:/data/user/0/WorkingWithFiles.Droid/files #

现在你不会看到隐藏文件夹了,你需要使用ls -a查看隐藏文件夹:

generic_x86:/data/user/0/WorkingWithFiles.Droid/files # ls -a
. .. .__override__ .config .local

generic_x86:/data/user/0/WorkingWithFiles.Droid/files/.config # ls
myfile.txt

System.IO 类可用于访问每个平台上的文件系统。 File 类允许您创建、删除和读取文件,Directory 类允许您创建、删除或枚举目录的内容。

另外,也可以使用File.WriteAllText方法写入一个文本文件:

File.WriteAllText(fileName, text);

试试下面的代码:

string fileName = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData), "temp.txt");
File.WriteAllText(fileName, "input content");

这里的filename 是:/data/user/0/WorkingWithFiles.Droid/files/.local/share/temp.txt

/.local也是一个隐藏文件夹,使用adb shell查看.txt文件:

generic_x86:/data/user/0/WorkingWithFiles.Droid/files/.local/share # ls
temp.txt 

官方文档:https://docs.microsoft.com/en-us/xamarin/xamarin-forms/data-cloud/data/files?tabs=windows#saving-and-loading-files

【讨论】:

  • 非常感谢!以后要试试!当然我会让你知道它是怎么回事:)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2022-01-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多