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);
}
答案 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权限。