Добрый день.Каталоги обнаружения Java
В настоящее время я поддерживаю приложение, которое должно анализировать каталоги. Приложение использует File.isDirectory()
, чтобы определить, является ли данный путь каталогом или файлом, а затем рекурсивно извлекает все файлы и подкаталоги.
Это работает, если имя каталога не содержит пробелы, поэтому путь, как C:\Foo\Bar
обнаруживает как Foo
и Bar
как каталоги, что желаемое поведение; но путь, такой как C:\F oo\Bar
, не имеет: File.isDirectory()
возвращает false
(как и File.isFile()
) на таком пути.
С другой стороны, File.isAbsolute()
возвращает true
- так что это абсолютный путь, но ни файл, ни каталог, согласно файловой библиотеке.
Есть ли обходной путь? Любые альтернативы для определения того, является ли данный путь каталогом? Или я обречен на запуск этого приложения только в каталогах без пробелов в них?
Благодарим за внимание.
Редактировать: файл создается из-за довольно извилистого процесса, включающего преобразование строки в файл обратно в строку и обратно в файл через 5-6 вызовов метода (а не мой код). В любом случае, я считаю, что корень проблемы. Я исправлю это.
Должен ли я удалить этот вопрос? Я не вижу, чтобы это было очень полезно для будущих пользователей.
Пожалуйста, разместите код - как вы создаете объект 'File'? – OldCurmudgeon
Это не имеет ничего общего с пробелами. Класс Java File знает, как бороться с пробелами, это должен быть ваш код. Попытайтесь посмотреть, хотите ли вы что-то подделать. – eladyanai
Просто, чтобы понять, у вас есть папка с именем «F oo» (с пробелом в названии) на вашем диске C? Что говорит 'File.exists()'? –