跳到主要內容

發表文章

目前顯示的是 12月, 2010的文章

範例 - Java NIO2 API 刪除完整目錄

Java 7 後建議使用 NIO2 API 處理目錄相關操作 新的 API 實作相對過去的方式有一些好處 1. 更好的效能 2. 能處理 symbolic link 等非實體存在的目錄、檔案 3. 搭配 Java 8 開始的 Stream API 能有更方便的寫法 寫法如下: Path zippedPath = Paths.get(file.getAbsolutePath()); try {     Files.walkFileTree(walkedPath, new FileVisitor<Path>() {         @Override         public FileVisitResult preVisitDirectory(Path dir,                                                  BasicFileAttributes attrs) throws IOException {             return FileVisitResult.CONTINUE;         }         @Override         public FileVisitResult postVisitDirectory(Path directory, IOException ioe)                 throws IOException {             Files.delete(directory);             return FileVisitResult.CONTINUE;         }         @Override         public FileVisitResult visitFile(Path file, BasicFileAttributes attributes)                 throws IOException {             Files.delete(file);             return FileVisitResult.CONTINUE;         }         @Override

範例 - Java計算路徑占用的磁碟空間大小

    public static long getFolderSize(String path) throws IOException {         final AtomicLong size = new AtomicLong(0);         Path directoryPath = Paths.get(path);         try {             Files.walkFileTree(directoryPath, new SimpleFileVisitor<Path>() {                 public FileVisitResult visitFile(Path file,                                                  BasicFileAttributes attrs) {                     size.addAndGet(attrs.size());                     return FileVisitResult.CONTINUE;                 }             });         } catch (NoSuchFileException ignored) {         }         return size.get();     }

JavaEE 檔案上傳範例-使用Cos套件

Java EE規格雖然是針對網路應用開發的,但直到 Servlet 3.0 前都沒有提供檔案上傳的功能 Servlet 3.0的上傳機制可以參考 這篇 因為還沒打算轉換到Servlet 3.0 的打算下,先研究使用套件的解決方案 時下較為流行的上傳套件共有 Cos、FileUpload、SmartUpload Cos套件是 O'reilly 公司提供,可至 http://www.servlets.com/cos 下載套件(cos-26Dec2008.zip) FileUpload 的下載位置: http://commons.apache.org/fileupload/ FileUpload 使用須具備的套件: http://commons.apache.org/io/ SmartUpload 的網站已關閉,大概未來也不會繼續開發了 FileUpload 具有較多的功能,也有提供方便用來做 Ajax 應用的 listener 不過純以上傳效率來說Cos是最優秀的,贏過其他套件不少 這次實作選擇使用Cos