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

Java 判斷網絡共享文件是否存在:UNC 路徑映射與 File 類檢測

     編輯:Java 相關知識

問題背景

Java File 類不直接支持 UNC 路徑(如 //192.168.1.100/share/file.txt),需將網絡路徑映射為本地盤符或使用 UNC 格式(Windows 支持)。

解決方案

方法一:映射網絡驅動器

  • 系統映射:`net use Z: \\192.168.1.100\share`
  • 代碼中使用 `Z:/file.txt`

方法二:直接使用 UNC 路徑(Windows)

File f = new File("//192.168.1.100/share/file.txt"); // 注意雙斜杠開頭
if (f.exists()) { ... }

方法三:JCIFS 庫(跨平台 SMB 客戶端)

SmbFile smbFile = new SmbFile("smb://user:pass@192.168.1.100/share/file.txt");
if (smbFile.exists()) { ... }

完整檢測工具類

public class NetworkFileChecker {
    public static boolean check(String path) {
        File f = new File(path);
        if (f.exists()) {
            if (f.isFile()) System.out.println("文件存在");
            else if (f.isDirectory()) System.out.println("目錄存在");
            return true;
        }
        System.out.println("不存在: " + path);
        return false;
    }
    public static void main(String[] args) {
        check("d:/test.xml");
        check("o:/test.xml"); // 映射盤符
        check("//192.168.1.100/share/學習/學習.txt"); // UNC 路徑
    }
}

注意事項

  • UNC 路徑在 Windows 下直接可用,Linux 需掛載 CIFS/SMB
  • 權限不足會導致 exists() 返回 false 而不拋異常
  • 頻繁檢測建議緩存結果或使用長連接
  • JCIFS 需添加依賴:jcifs:jcifs:1.3.17
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved