Я создал программу для отображения всех файлов и подкаталогов, представленных в каталоге, причем имя каталога передается в качестве аргумента из командной строки в cmd.
Первый если Условие (if (f.isDirectory())) проверяя, является ли данный аргумент каталогом или не работает нормально.
Затем я использую метод File.list(), который равен dir_content = f.list(), чтобы сохранить список всех имен файлов в каталоге в массиве String dir_content.
Затем в цикле for каждый раз, когда создается новый файловый объект для каждого имени файла, хранящегося в массиве String dir_content, который равен Файл f1 = новый файл (dir_content [i]), а затем проверить наличие файла используя метод exists(), который равен if (f1.exists()).
Теперь проблема в том, что f1.exists возвращает false для многих файлов, несмотря на их существование в данной директории. Он отображает несколько файлов, кроме того, не отображает подкаталоги.
Ниже приведен код моей программы: -Метод file.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());
}
}
}
}
}
Кто-то пожалуйста, скажите мне причину этой проблемы и ее решения.
Спасибо заранее.
'dir_content = Ф.Листа()' Если приложение. имеет дело с 'File' instancess, не p * ss с экземплярами' String'. См. ['File.listFiles()'] (http://docs.oracle.com/javase/7/docs/api/java/io/File.html#listFiles%28%29). –