需要使用 Java 在远程服务器中共享 Windows 文件夹

问题描述

我正在尝试使用我的 Java 代码在远程服务器中共享一个 Windows 文件夹。为此,我使用 process 和 net share 命令来完成此操作,但出现语法错误。我搜索了很多,但无法获得有关如何在远程服务器中共享的正确语法。如果您有任何想法,请提出建议。

try {
    String commandString = "net share sharefolder=\\USMLVV3BI0567\D$\Data /grant:everyone,FULL /UNLIMITED /REMARK:Share /CACHE:None /grant:everyone,FULL /UNLIMITED /REMARK:Share /CACHE:None";
    Process p;
    System.out.println(commandString);

    p = Runtime.getRuntime().exec(commandString);
    // To get the output of command
    BufferedReader stdInput = new BufferedReader(new InputStreamReader(p.getInputStream()));

    BufferedReader stdError = new BufferedReader(new InputStreamReader(p.getErrorStream()));
    String line = null;
    while (true) {
        line = stdInput.readLine();
        if (line == null) {
            break;
        }
        System.out.println(line);
    }
    while (true) {
        line = stdError.readLine();
        if (line == null) {
            break;
        }
        System.out.println(line);
    }
}
catch (IOException e) {
    e.printstacktrace();
}

解决方法

但出现语法错误

你的意思是...

Invalid escape sequence (valid ones are  \b  \t  \n  \f  \r  \"  \'  \\ )

那是因为您需要转义反斜杠,即 \String 中的字符。

尝试以下操作:

String commandString = "net share sharefolder=\\\\USMLVV3BI0567\\D$\\Data /grant:everyone,FULL /UNLIMITED /REMARK:Share /CACHE:None /grant:everyone,FULL /UNLIMITED /REMARK:Share /CACHE:None";