#java #linux #filenotfoundexception
#java #linux #исключение filenotfoundexception
Вопрос:
Я продолжаю получать исключение FileNotFound, однако, когда я запускаю его в Windows, он работает безупречно. Я запустил File.getAbsolutePath(); и он возвращает правильный абсолютный путь. Что дает?
if(os.equals("Linux")){
File chrome = FileUtils.getFile("/home/kevinflynn/.config/google-chrome/Default/Login\ Data");
String path = chrome.getAbsolutePath(); // It's correct -_-
File chromedest = FileUtils.getFile("/home/workspace/Crypt32/logindata.db");
FileUtils.copyFile(chrome, chromedest);
}
else{
File chrome = FileUtils.getFile("C:/Users/" user "/AppData/Local/Google/Chrome/User Data/Default/Login Data");
File chromedest = FileUtils.getFile("logindata.db");
FileUtils.copyFile(chrome, chromedest);
}
До сих пор я пробовал несколько разных методов и убедился, что «Данные для входа» — 777 ‘d
Я запускаю свою IDE с правами root, и все мои другие программы Java работают нормально.
chrome.CanRead() по-прежнему возвращает false, а CopyFile отключает исключение
Есть ли у FileUtils проблемы со скрытыми путями или именами файлов, использующими escape-символы?
Запуск Debian 8, Eclipse Mars
java version "1.8.0_101"
Java(TM) SE Runtime Environment (build 1.8.0_101-b13)
Java HotSpot(TM) 64-Bit Server VM (build 25.101-b13, mixed mode)
Комментарии:
1. Есть ли фактическая обратная косая черта в имени файла? Я думаю, нет — удалите двойную обратную косую черту из пути. Вам не нужно — и не может — экранировать пробелы в именах файлов в Linux подобным образом.
2. Да, есть, извините, забудьте упомянуть, что фактическое имя файла — «Login Data», по крайней мере, так оно и есть в bash.