我创建了一个程序来显示目录中存在的所有文件和子目录,目录名称作为 cmd 命令行中的参数传递。
第一个if条件(if(f.isDirectory()))检查给定参数是否是目录工作正常。
然后我使用dir_content = f.list()的 File.list() 方法将目录中所有文件名的列表存储在字符串 dir_content 数组中。
然后在 for 循环中,每次为存储在字符串数组 dir_content 中的每个文件名创建一个新文件对象,即File f1 = new File(dir_content[i])然后使用 exists() 检查文件是否存在方法是if(f1.exists())。
现在的问题是尽管f1.exists存在于给定目录中,但对于许多文件返回 false。它显示了一些文件,而且不显示子目录。
以下是我的程序代码:-
import java.io.File;
class FileDemo1
{
public static void main(String[] a)
{
File f = new File(a[0]);
String[] dir_content;
if(f.isDirectory())
{
System.out.print(f.getName()+" is a directory containing ");
dir_content = f.list();
for(int i=0;i<dir_content.length;i++)
{
File f1 = new File(dir_content[i]);
if(f1.exists())
{
System.out.print("\n\t: "+f1.getName());
System.out.print(" "+f1.isFile());
System.out.print(" "+f1.isDirectory());
}
}
}
}
}
有人请告诉我问题背后的原因及其解决方案。
提前致谢。