提问者:小点点

团结:如何在Android外部路径中读取CSV文件?


我希望我的Android应用通过 Unity 创建 CSV 文件(包括位置、比例)并显示立方体(使用 CSV 文件制作)。

这是我在Android中执行Unity项目的方式:

我已经完成了:(1)Android studio中的一个Android项目和(2)一个Unity项目。(Unity 项目有一个脚本来读取 CSV 文件和创建多维数据集。

在 Unity 项目中,使用 Android 平台导出项目,导出项目包含 assets 文件夹、jniLibs 文件夹、unity-class.jar 文件和 UnityPlayerActivity.java 文件。

我将这4个组件复制到Android项目中。因此,当我点击Android应用程序中的一个按钮时,Unity项目就会启动。

CSV文件保存在/storage/simumed/0/Android/data/{包名}/files/中。

你能告诉我如何在Unity中通过该路径读取CSV文件吗?

我用了

if(File.Exists(Application.persistentDataPath + "/data.csv"))
  byte[] bytes = File.ReadAllBytes

但没有用。

我用的是Unity 2018.4.33f1和Android Studio 4.1.3。


共2个答案

匿名用户

if条件路径错误。使用< code > application . persistent data path 是正确的,但正确的路径应该是:

Path.Combine(Application.persistentDataPath, "data.csv");

路径后不需要尾部斜杠。我也会考虑使用 Path.Combine 而不是运算符。

匿名用户

您可以使用:

if(File.Exists( Application.persistentDataPath + "/" + "data.csv")) 
    {
      //... Do Something
    }

但是更好的防错方法是使用 Path.Combine()。

if( File.Exists( Path.Combine( Application.persistentDataPath, "data.csv"))
    {
      //... Do Something
    }

Path.Combine() 负责您必须添加的所有手动“/”。它还具有多达 4 个字符串重载,以便于访问。所以你甚至可以做这样的事情:

Path.Combine(String, String, String, String)    //Combines four strings into a path