簡體   English   中英

Java無法從Linux在Windows共享文件夾中創建文件

[英]Java Not able to create a file in windows shared folder from Linux

我正在嘗試使用以下代碼在共享文件夾中創建文件。 當我在Windows上運行此代碼時,我能夠做到。 但是,當我在linux上運行相同的代碼時,它不起作用。

在liunx中,它將在我運行此Java代碼的文件夾中創建一個名為“ \\ 192.168.1.102 \\ share \\ 1.pdf”的文件,而不是在共享文件夾“ \\ 192.168.1.102 \\ share \\”中創建文件1.pdf。 。

似乎在Linux上運行時,服務器未將路徑標識為共享位置,而是將其讀取為本地路徑。

還有其他方法可以在共享文件夾中創建文件嗎? 有人可以幫我解決這個問題嗎?

public class Test {

    public static void main(String args[]) {

        String s1 ="\\\\192.168.1.102\\share";
        try{

            FileOutputStream fos = new FileOutputStream(s1+"\\1.pdf");
            fos.write(("Testing Success").getBytes());
            fos.close();
        }
        catch(Exception e){
            e.printStackTrace();
            System.out.println(e.toString());
        }

        File file = new File(s1);
        System.out.println(file.exists());
    }
}

Linux根本不支持\\\\ip\\folder path語法。

使用前,必須先掛載共享文件夾。

檢查您是否具有足夠的權限在共享文件夾上寫入文件。 或者嘗試以管理員身份運行您的代碼Jar。

(1)請使用Java函數File.separator代替文件路徑中的“ \\”,以使其與平台無關。

由於Windows支持“ \\\\”,而Linux支持“ /”。

(2)使用chmod命令檢查您是否有權在該目錄上寫入。

假設文件系統已正確安裝在您使用的路徑中,則該代碼將無法跨平台運行,因為Windows中的路徑使用\\作為段分隔符,而Linux中的路徑使用/

您應該使用跨平台代碼生成路徑。 File類具有稱為separator的靜態String成員,該成員將具有平台的正確值。

String myPath = File.separator + "home" + File.separator + "bob"

上面將在Windows中生成\\home\\bob ,在Linux / OSX中生成/home/bob

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM