Unity 3D Android和文件

时间:2016-05-19 08:23:25

标签: android file mobile unity3d apk

Android和Unity 3D存在问题。我有一个文件读取代码。当我将代码放在计算机上时,它可以工作。但是,我的代码不适用于Android(移动)。我怎么解决这个问题?谢谢。

FileInfo theSourceFile = new FileInfo(filename);
    if (System.IO.File.Exists(fname))
    {
        StreamReader reader = theSourceFile.OpenText();
        string text = reader.ReadLine();
        print(string);
    }

编辑更新代码

string filename = "file.txt";
FileInfo theSourceFile = new FileInfo(filename);
filename = Application.persistentDataPath + "/"+filename;
System.IO.File.WriteAllText(filename,"Test");
    if (System.IO.File.Exists(filename))
    {
        StreamReader reader = theSourceFile.OpenText();
        string text = reader.ReadLine();
        print(string);
    }

2 个答案:

答案 0 :(得分:1)

您必须在Android上使用Application.persistentDataPath才能阅读任何内容。

将其更改为string filename = Application.persistentDataPath + "/file.txt";,您的代码应该可以正常工作。

请记住,在read函数可以工作之前,您必须先写入目录。因此file.txt首先必须存在Application.persistentDataPath

例如

string filename = Application.persistentDataPath + "/file.txt";
System.IO.File.WriteAllText(filename,"Test");

编辑:

由于您在FileInfo theSourceFile = new FileInfo(filename);之前有filename = Application.persistentDataPath + "/"+filename;,因此新代码仍无效。这意味着文件名仍然有效。请注意订单您的脚本执行。切换后,它在我的Android上运行。以下是整个代码。

string filename = "file.txt";
filename = Application.persistentDataPath + "/" + filename;
System.IO.FileInfo theSourceFile = new System.IO.FileInfo(filename);
System.IO.File.WriteAllText(filename, "Test");
if (System.IO.File.Exists(filename))
{
    System.IO.StreamReader reader = theSourceFile.OpenText();
    string text = reader.ReadLine();
    print(text);
}

答案 1 :(得分:0)

您需要更改Android设备的构建设置。 更改配置>>写访问外部(SD卡)。

如果没有,您的应用程序指向内部路径,并且您需要在Android设备中拥有root权限。