首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 相關知識

JSP 操作本地文件系統完整代碼庫:文件瀏覽、ZIP/RAR 解壓、命令執行、系統信息獲取一站式參考

     編輯:Java 相關知識

雖然現代 Web 開發推薦前後端分離,但維護舊系統或快速原型時,JSP 直接操作本地文件仍有需求。本文提供一個功能完整的 JSP 文件管理頁面代碼,涵蓋目錄瀏覽、ZIP/RAR 解壓、系統命令執行、服務管理、文件系統信息獲取等核心功能,可作為參考庫直接復用。

核心功能模塊

1. 系統命令執行封裝

public static String exec(String cmd, Writer out) throws IOException {
    Process p = Runtime.getRuntime().exec(cmd);
    InputStream is = p.getInputStream();
    byte[] buf = new byte[cmd.length() * 10];
    int len; StringBuffer sb = new StringBuffer();
    while ((len = is.read(buf)) != -1) {
        String s = new String(buf, 0, len);
        if (out != null) { out.write(s); out.flush(); }
        sb.append(s);
    }
    is.close();
    return sb.toString();
}

2. ZIP 解壓(純 Java 實現)

public String unzip(File file, File dir) throws IOException {
    if (!file.getName().toLowerCase().endsWith(".zip")) return "非 ZIP 文件";
    ZipFile zf = new ZipFile(file);
    Enumeration<? extends ZipEntry> entries = zf.entries();
    StringBuffer result = new StringBuffer();
    while (entries.hasMoreElements()) {
        ZipEntry ze = entries.nextElement();
        File target = new File(dir, ze.getName());
        if (ze.isDirectory()) { target.mkdirs(); continue; }
        target.getParentFile().mkdirs();
        try (InputStream is = zf.getInputStream(ze);
             FileOutputStream fos = new FileOutputStream(target)) {
            byte[] buf = new byte[8192]; int len;
            while ((len = is.read(buf)) != -1) fos.write(buf, 0, len);
        }
        result.append(ze.getName()).append("<br/>");
    }
    zf.close();
    return result.append("全部完成").toString();
}

3. RAR 解壓(調用外部 UnRAR.exe)

// 查找 UnRAR.exe:Program Files / D盤 / WebApp 根目錄
// 執行:unrar x -o+ -p- <rar文件> <目標目錄>
// 解析輸出判斷成功/失敗

4. 文件系統視圖輔助

  • FileSystemView 獲取圖標、顯示名稱、根目錄
  • ShellFolder (Sun 內部類) 獲取 Windows 殼擴展信息
  • 服務管理:解析 sc query / net start 輸出獲取服務狀態
  • 屏幕分區計算:用於全屏佈局

安全警示 ⚠️

  • 直接暴露文件系統、命令執行極高風險,嚴禁生產環境使用
  • 若必須使用:強制認證授權、IP 白名單、命令白名單、審計日志
  • 現代替代方案:前端 + 後端 REST API(Spring Boot / Node.js)+ 最小權限原則

代碼結構說明

頁面頂部導入大量包(java.io, java.util.zip, javax.swing, sun.awt.shell 等),主體為 JSP 腳本片段(<%! ... %> 聲明方法,<% ... %> 執行邏輯),混合 HTML 輸出。屬單文件大雜燒風格,實際項目請拆分為 Controller + Service + JSP/前端模板。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved