[英]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.