使用getFileStreamPath确定文件存在 - sorta工作

时间:2012-04-19 11:58:05

标签: android

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

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

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

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

我怀疑这是因为没有任何路径信息它正在根目录中查找文件。我可以设置基本上下文,但这样做是否合适/良好实践?

当我向Google寻求帮助时,我找不到任何好的例子,所以我为再次打扰你帮助这个Java noob而道歉。

JB

1 个答案:

答案 0 :(得分:0)

有几点:

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

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

  • 使用File.exists

  • 测试文件是否存在
  • 请注意,您的应用需要获得外部存储空间的明确许可,并且您应该通过Environment.getExternalStorageState

  • 检查该应用是否可用