Добрый день!Java. Файлы и папки. Невозможно определить тип
Я написал метод на Java, который должен искать файлы в папках и выполнять некоторые операции с ними.
Так что проблема в том, что когда я пытаюсь проверить, что у меня есть (файл или каталог), я ничего не получаю в обоих случаях! Но, как я вижу, пути выглядят правильно.
Как исправить эту проблему?
Вот код:
public void searchInDir(){
File inputFile = new File(this.fileName);
String[] namesOfFilesDir = inputFile.list();
for (int i = 0; i < namesOfFilesDir.length; i++)
{
String normalPath = this.getNormalPath(inputFile.getCanonicalPath()); //C:\User -> C:\\User
// Two separators for correcting path to file
String pathToCurrentFile = normalPath + File.separator + File.separator + namesOfFilesDir[i];
File f = new File(pathToCurrentFile, namesOfFilesDir[i]);
System.out.printf("FileName=%s, Path=[%s]\n", namesOfFilesDir[i], pathToCurrentFile);
System.out.println(f.isDirectory());//False
System.out.println(f.isFile());//False too
//Some other code
}
}
Например this.fileName состоит путь к папке (и эта папка содержит одну папку и 2 файла).
я получил следующий:
FileName=Readme.txt, Path=[C:\\workspace\\Grep\\t\\Readme.txt]
false
false
FileName=t2, Path=[C:\\workspace\\Grep\\t\\t2]
false
false
FileName=test.txt, Path=[C:\\workspace\\Grep\\t\\test.txt]
false
false
Ok. Программа говорит, что.
Позволяет напечатать следующий код в качестве примера.
File f = new File("C:\\workspace\\Grep\\t\\Readme.txt");
System.out.println(f.isFile());
Программа напечатает "True".
не уверен, что вы хотите достичь, но почему бы не использовать File.listFiles(), которая дает правильный файл объекты –
Это часть метода, который получает все файлы в папке и ищет информацию в них. Поэтому он работает с использованием рекурсии. Вот почему мне нужно было знать какой-то файл. Но я только начинаю, и теперь я понимаю, что это очень плохой код. – ExiRe