我正在使用JSch通过sftp上传文件。
我将文件从Windows上传到unix服务器
使用
上传即时消息File file = FiletoPath;
sftp.put(new FileInputStream(file), file.getName());
因此:
String[] split = file.getName().split("\\");
sftp.put(new FileInputStream(file), split[split.length-1]);
这将出现,因为getName()将返回文件名或绝对路径:
\\东西\东西\东西\文件$ \东西\东西\ myfilename.txt
当我尝试拆分它时会有错误
{{1}}
我不在乎。我该如何解决这个问题?
答案 0 :(得分:0)
我已经发现了它。
基本上由于
\\这个反斜杠它们将具有空值并将抛出异常
我使用的是org.google.guava.Splitter.jar: 在线下载org.google.guava.Splitter.jar
在我的代码段下面:
//Declaration of JSch Connection session,
//channel and ChannelSftp
//filetype: MultiPartFile
String filename = file.getName();
Iterables<String> itr = Splitter.on("\\").trimResults().omitEmptyStrings().split(filename);
String[] split = Iterables.toArray(itr);
ChannelSftp.put:
//Change Directory to upload the file:
String uploadDirectoryPath = "/usr/name/profile/toStorePath/files/";
try{
csftp.cd(uploadDirectoryPath);
csftp.put(file.getInputStream(), split[split.length-1]);
} catch(SftpException | IOException e){
e.printStackTrace();
}