Java 将现有字符串与环境进行比较时出现问题。getExternalStorageDirectory().getPath()

Java 将现有字符串与环境进行比较时出现问题。getExternalStorageDirectory().getPath(),java,android,string,file,path,Java,Android,String,File,Path,我目前正在编写一个使用文件夹导航的android应用程序。我让用户在中启动 String rootPath = Environment.getExternalStorageDirectory().getPath() 还有一个currentPath字符串,用于跟踪用户当前所在的目录 用户可以在子文件夹中导航,然后导航回根文件夹 但是,程序似乎继续尝试在初始根路径字符串下方导航,这意味着 if(currentPath!=rootPath){ 似乎根本不起作用。我该怎么解决这个问题 我现在让程序工作

我目前正在编写一个使用文件夹导航的android应用程序。我让用户在中启动

String rootPath = Environment.getExternalStorageDirectory().getPath()
还有一个currentPath字符串,用于跟踪用户当前所在的目录

用户可以在子文件夹中导航,然后导航回根文件夹

但是,程序似乎继续尝试在初始根路径字符串下方导航,这意味着
if(currentPath!=rootPath){
似乎根本不起作用。我该怎么解决这个问题

我现在让程序工作只是因为我在if语句之后有一个try-catch块,它没有正确地被触发

此外,我还设置了Logcat消息来显示当前目录是什么,它显然与程序初始化时的目录相同,那么为什么它不等于程序初始化时创建的根路径字符串呢?

不要使用

if(currentPath != rootPath) {
比较字符串

您必须使用equals:

if( ! currentPath.equals(rootPath)) {
!=运算符比较字符串对象的地址。equals方法比较字符串的内容


请参见

解释了很多的Ah的可能副本。只是在没有异常处理的情况下尝试了它,似乎已经解决了它。