Я пытаюсь перечислить количество файлов в каталоге. Но я не могу это сделать, и я подозреваю, что он имеет отношение к пробелу в именах родительских каталогов.
Что я делаю это через .properties файл я установил значение, как -Файловый объект с пробелом в имени каталога
dir.loc=H:/Main/dir one/dir - two/dir3/dir four
dir.name=Run
Сейчас в файле Jave я установить значение переменных Струнные, как -
String s1 = properties.getProperty("dir.loc");
String s2 = properties.getProperty("dir.name");
создать файл объект, как -
File f = new File(s1, s2);
File[] fList = f.listFiles();
в настоящее время здесь fList
является null
;
Привод H находится на другом удаленном компьютере, и я считаю, что программа java пытается локально локализовать локацию «Запустить», а не находить ее на диске H, и потому что она не находит «Запустить» возврат списка null
.
Когда я попытался в простом классе Java, как -
File f = new File("H:/Main/dir one/dir - two/dir3/dir four", "Run");
тогда я получаю результат с f.listFiles().length;
Так что я думаю, что, возможно, придется сделать что-то с извлечением значения из файла свойств и присваивая его переменной String.
Правильно ли в моем предположении?
Что может быть возможным решением этой проблемы?
Как вы загружаете свойства и каково значение 'new File (s1, s2) .getAbsolutePath()'? –
Это то, что получает отпечатки для 'getAbsolutePath()' as 'H: \ Main \ dir one \ dir - two \ dir3 \ dir four \ Run', и я загружаю файл свойств просто как 'properties.load (Thread. currentThread) .getContextClassLoader(). getResourceAsStream ("Test.properties")); ' –
ну, это ничем не отличается от вашего« прямого »примера, что странно. Повторно проверьте права доступа на диск «H»; Кроме того, вы можете попробовать установить UNC-путь (в виде '\\ machine \ share \ target'). –