首页 > 解决方案 > C#-Xamarin:在设备上创建一个 .txt 文件

问题描述

我是编程初学者。我想在点击按钮时创建一个 .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");

标签: c#xamarin

解决方案


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

string str = File.ReadAllText(filename);

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

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

该文件在 emulator(Files) 中看不到,因为/.config它是一个隐藏文件夹。

在此处输入图像描述

不过,你可以用adb shell命令看到,在PC 中打开终端:</p>

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


推荐阅读