![](/img/trans.png)
[英]Java Mail - how to create a link for a shared folder on linux and access the same in 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.