我如何检查Ubuntu中的Java中的isFile()或isDirectory()函数?

Ubuntu中, isFile()isDirectory()不能正常工作。 我用这个代码找出是否是文件或目录:

 boolean fileName= file.getName().lastIndexOf('.') == -1; 

但问题是我做了一个名为bhargav.panchal的文件夹。 通过上述function,该文件夹被视为文件,而不是文件夹。

 File file=new File("/home/asd/My_Shared_File/bhargav.panchal"); if(file.exists()){ if(!file.isDirectory()) { Toast.makeText(activity, "This is File", Toast.LENGTH_SHORT).show(); } else { Toast.makeText(activity, "This is Directory", Toast.LENGTH_SHORT).show(); } } else { Toast.makeText(activity, "File or Directory doesn't exist.", Toast.LENGTH_SHORT).show(); } 

在这种情况下, isDirectory()isFile()方法总是返回false。

不,你错了。 相反,您不能使用DVM访问外部环境。

原因:应用程序不可能根据操作系统级别的安全性互相干扰,并且Dalvik虚拟机仅限于一个操作系统进程, Dalvik本身并不关心运行时安全性 。 尽管Dalvik并不依赖于安全性,但有趣的是,大多数标准的Java安全类仍保留在Android发行版中。 这些包括java.lang.SecurityManager和java.security包中的一些类。 在标准的Java环境中,SecurityManger扮演类似于Android中的操作系统进程级安全的角色。 SecurityManager通常控制对JVM外部资源(如文件,进程和网络)的访问 。 在Android发行版中,标准安全框架显然存在于应用程序在其own application space内使用,但是没有完全实现也没有配置(没有java.policy文件存在)用于进程间安全性。

更换

  if(file.isDirectory()){ Toast.makeText(activity, "This is File", Toast.LENGTH_SHORT).show(); } else { Toast.makeText(activity, "This is Directory", Toast.LENGTH_SHORT).show(); } 

就此

  if(!file.isDirectory()){ Toast.makeText(activity, "This is File", Toast.LENGTH_SHORT).show(); } else { Toast.makeText(activity, "This is Directory", Toast.LENGTH_SHORT).show(); }