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

时间:2012-04-09 12:58:38

标签: java android ubuntu

在ubuntu中,isFile()isDirectory()无效。我使用此代码来确定某些内容是文件还是目录:

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

但问题是我创建了一个名为bhargav.panchal的文件夹。使用上述功能,此文件夹被视为文件,而不是文件夹。

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。

2 个答案:

答案 0 :(得分:3)

不,你错了。相反,您无法通过DVM访问外部环境。

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

答案 1 :(得分:1)

替换

       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();
        }