将现有字符串与Environment.getExternalStorageDirectory()进行比较的问题.getPath()

时间:2018-05-28 13:35:11

标签: java android string file path

我目前正在编写一个使用文件夹导航的Android应用程序。我让用户开始

String rootPath = Environment.getExternalStorageDirectory().getPath()

还有一个currentPath字符串,用于跟踪用户当前所在的目录。

并且用户可以在子文件夹中导航,并导航回根文件夹。

但是,该程序似乎继续尝试在初始的rootPath字符串下面导航,这意味着我的if语句为 if(currentPath != rootPath) { 似乎根本没有工作。我该如何解决这个问题?

我现在正在使用该程序只是因为我在这个if语句之后有一个try catch块,而这个if语句没有被正确触发。

另外,我已经设置了Logcat消息来显示当前目录是什么,它与程序初始化时的内容明显相同,那么为什么它不等于在程序初始化时创建的rootPath字符串?

1 个答案:

答案 0 :(得分:0)

不要使用

if(currentPath != rootPath) {

比较字符串。

你必须使用equals:

if( ! currentPath.equals(rootPath)) {

!=运算符比较字符串对象的地址。 equals方法比较字符串的内容......

请参阅https://www.leepoint.net/data/expressions/22compareobjects.html