2

我正在尝试确定 SD 卡上我的应用程序文件夹中是否存在文件。我首先检查文件夹是否存在并处理得很好。接下来我想看看文件是否存在所以我尝试了以下但得到“包含路径分隔符”

File file = getBaseContext().getFileStreamPath(ChildFolder + "/LiftData.xml");

ChildFolder 是正确的路径。我之前设置了它,您可以在调试透视图中正确地看到它。如果我只使用文件名,它不会看到文件并每次都创建它。

File file = getBaseContext().getFileStreamPath("LiftData.xml");

我怀疑这是因为没有任何路径信息,它正在根目录中查找文件。我可以设置基本上下文,但这会起作用吗?这是正确的/好的做法吗?

当我向谷歌寻求帮助时,我没有找到任何好的例子,所以我很抱歉再次打扰你帮助这个 Java 菜鸟。

JB

4

1 回答 1

0

几点:

  • 要获取外部存储上的应用程序文件夹,请调用Context.getExternalFilesDir.

  • 不要使用“/”,而是使用常量File.separator(或者,更好的是,使用File构造函数来组装绝对路径:File(basePath, "LiftData.xml")

  • 测试文件是否存在File.exists

  • 请记住,您的应用需要明确的权限才能访问外部存储,并且您应该通过以下方式检查它是否可用Environment.getExternalStorageState

于 2012-04-19T12:07:28.473 回答