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)
为什么它改变了路径,我该如何解决?
注:
- 这是一个
PUT
请求。文件 abc.csv 正在服务器位置创建(我可以在 Web 界面中看到)。但是由于显而易见的原因,该文件是空的。
- 用户拥有所有凭据。
- 文件大小小于 1 Mb。
- 我可以手动将文件放在有凭据的位置。
- 我已经尝试了这里建议的所有方法: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 ) {…}
我知道这可能很简单,但我无法解决它。
我正在尝试将文件从 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)
为什么它改变了路径,我该如何解决?
注:
- 这是一个
PUT
请求。文件 abc.csv 正在服务器位置创建(我可以在 Web 界面中看到)。但是由于显而易见的原因,该文件是空的。 - 用户拥有所有凭据。
- 文件大小小于 1 Mb。
- 我可以手动将文件放在有凭据的位置。
- 我已经尝试了这里建议的所有方法: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 ) {…}