【发布时间】:2018-06-15 14:19:49
【问题描述】:
我的应用下载 PDF 文件。所以在某些活动中,我需要检查哪些文件可用于执行某些操作。我正在使用下面的代码来检查文件是否可用 -
val file = File(getDir(book))
if (file.exists()) {
// do some stuff
} else {
// do other stuff
}
这里是getDir函数的代码-
fun getDir(book: Book): String {
return Environment.getExternalStorageDirectory().toString() + File.separator +
"PDF FOLDER/${book.layer_name}/${book.class_name}/${book.name}.pdf"
}
这段代码在下载文件的Activity 1中运行良好。但是当我去 Activity 2 这个方法说文件不存在。
我从这两个活动中记录了 getDir(book),它们 100% 相同。日志如下 -
E/loggg: /storage/emulated/0/PDF FOLDER/Primary/Class1/my_book.pdf
E/loggg: /storage/emulated/0/PDF FOLDER/Primary/Class1/my_book.pdf
当我从 Activity 2 下载文件时,代码再次完美运行。
这个问题背后的原因可能是什么?我在我的代码中看不到任何问题。任何帮助,将不胜感激。谢谢。
【问题讨论】:
-
可能是权限问题?
-
我已经获得了存储的运行时权限,并且文件正在使用该权限打开。所以我可以保证这不是权限问题。
-
什么时候打开Activity2?
-
Activity 1 和 Activity 2 没有连接.. 每个 Activity 都是从 main acrivity 启动的。
-
当你从activity1下载文件然后打开activity2并且什么都不做只是检查文件资源管理器是否有那个文件?