在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。
答案 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();
}