JavaNIO 下載網路檔案儲存本地報java.nio.file.AccessDeniedException:無許可權操作
JavaNIO 下載檔案儲存本地報java.nio.file.AccessDeniedException:無許可權操作
異常程式碼如下:
/** * nio下載檔案到本地並儲存 * @param url * @param filePath * @param fileName */ public static void downloadByNIO(String url, String filePath, String fileName) { try (InputStream in = new URL(url).openStream()) { Path target = Paths.get(filePath, fileName); Files.createDirectories(target.getParent()); Files.copy(in, target, StandardCopyOption.REPLACE_EXISTING); } catch (IOException e) { e.printStackTrace(); } }
異常資訊如下:
java.nio.file.AccessDeniedException:檔案路徑
解決方法:增加檔案的讀寫許可權
/** * nio下載檔案到本地並儲存 * @param url * @param filePath * @param fileName */ public static void downloadByNIO(String url, String filePath, String fileName) { try (InputStream ins = new URL(url).openStream()) { Path target = Paths.get(filePath, fileName); //設定獲取全部許可權 Set<PosixFilePermission> permissions = PosixFilePermissions.fromString("rwxrwxrwx"); FileAttribute<Set<PosixFilePermission>> fileAttributes = PosixFilePermissions.asFileAttribute(permissions); Files.createDirectories(target.getParent(),fileAttributes); Files.copy(ins, target, StandardCopyOption.REPLACE_EXISTING); } catch (IOException e) { e.printStackTrace(); } }