繁体   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