Java/Webdav: 文件名、目录名或卷标语法不正确”

Java/Webdav: The filename, directory name, or volume label syntax is incorrect”

我知道这可能很简单,但我无法解决它。

我正在尝试将文件从 Java 客户端上传到 webdav 服务器,这是我的代码片段

String filename = "abc.csv";
File targetFolder = new File("https://webdavserverurl/Uploads/");
File targetFile = new File(targetFolder, filename);
.....http connections stuffs
fileInputStream = new FileInputStream(fileToCopy);
fileOutputStream = new FileOutputStream(targetFile); // exception here
byte[] buffer = new byte[64*1024];
            int i = 0;
            while((i = fileInputStream.read(buffer)) != -1) {
                fileOutputStream.write(buffer, 0, i);
            }

在创建 o/p 流时,我得到

java.io.FileNotFoundException: https:\webdavserverurl\Uploads\abc.csv (The filename, directory name, or volume label syntax is incorrect)

为什么它改变了路径,我该如何解决?

注:

  1. 这是一个PUT请求。文件 abc.csv 正在服务器位置创建(我可以在 Web 界面中看到)。但是由于显而易见的原因,该文件是空的。
  2. 用户拥有所有凭据。
  3. 文件大小小于 1 Mb。
  4. 我可以手动将文件放在有凭据的位置。
  5. 我已经尝试了这里建议的所有方法:What are possible reasons for java.io.IOException: "The filename, directory name, or volume label syntax is incorrect"

从 URL:

读取文件
try {
  URL url = new URL("https://webdavserverurl/Uploads/abc.csv");    
  try( InputStreamReader isr = new InputStreamReader(url.openStream());
      BufferedReader brd = new BufferedReader( isr ); ) {
  }
  catch( IOException ex ) {…}
}
catch( MalformedURLException ex ) {…}