linux與window文件路徑問題


最近在做一個文件上傳的組件時,發現在windows下上傳文件時沒任何問題,但是部署到linux下之后,有時會出現獲取不到上傳文件的問題,代碼如下:

/**
     * 校驗上傳的文件大小是否超過struts-config.xml文件中配置的大小
     * @param url
     * @return
     */
    public String checkfilesize(String url) {
        System.out.println("ReceiptAltAction checkfilesize() url:" + url);
        String url1 = url.replace("\\", "/");//--linux下路徑用“/”,不識別\;windows下“/”、 “\”都行
        System.out.println("ReceiptAltAction checkfilesize() url1:" + url1);
        File f = new File(url1);
        long s=0L;
        boolean flag = true;
        try{
            System.out.println("ReceiptAltAction  checkfilesize()  f.exists: " + f.exists());
            if (f.exists()) {
                FileInputStream fis = null;
                fis = new FileInputStream(f);
                s= fis.available();
                System.out.println("ReceiptAltAction  checkfilesize() file.size: " + s);
            } else {
                System.out.println("ReceiptAltAction  checkfilesize() run to else: the file " + url +" not exit" );
                flag = false;
            }
        }catch (Exception e) {
            System.out.println("ReceiptAltAction  checkfilesize() run to Exception..." );
            flag = false;
            System.out.println("文件"+url+"不存在");
        }
   
        if(s > UploadUtil.DEFAULT_UPLOAD_MAXSIZE*1024*1024){
            System.out.println("ReceiptAltAction  checkfilesize() the file size greater than 8M..." );
            flag = false;
        }
    
        return String.valueOf(flag);
    }

原因:linux下路徑都是正斜杠“/”。java確實支持\\,不過只能在windows下使用,linux下只能用/,而windows/也可以識別。所以以后寫程序都用/,不要用\\。除非有一點:在找注冊表里的鍵路徑時必須用到\\。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM