【发布时间】:2012-04-19 17:25:03
【问题描述】:
在 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。
【问题讨论】:
-
您在 Ubuntu 桌面上的 Android 模拟器上运行它,对吧?模拟器有自己的文件系统,它看不到你的 Ubuntu 桌面的文件系统,所以你的 Android 应用根本看不到 /home/volansys11/My_Shared_File/bhargav.panchal。
-
isFile() 和 isDirectory() 在 Ubuntu 上正常工作。错误必须在您的代码中。检查您的 JVM 是否可以访问目录
/home/volansys11/My_Shared_File/。 -
您有什么证据表明
isFile()或isDirectory()无法正常工作?isFile()和isDirectory()在文件不存在或由于其他原因无法访问应用程序时都返回 false 是完全正确的。