gpt4 book ai didi

java - 在 Java 中使用 JSch 在服务器上创建嵌套目录

转载 作者:行者123 更新时间:2023-11-30 08:26:18 28 4
gpt4 key购买 nike

我正在使用 jSch 在 Java 中制作文件上传应用程序。我想根据文件的创建日期等将我的文件放在不同的目录中。

我有一个主目录"/var/local/recordingsbackup/",我正在其中创建其他目录并将数据放入其中。

要实现这一点:

  • 我必须像这样创建目录"/var/local/recordingsbackup/20140207/root/SUCCESS/WN/" 并放置其中的数据。

到目前为止我已经试过了:

private void fileTransfer(ChannelSftp channelTarget, temp_recording_log recObj, String filePath) {

int fileNameStartIndex = filePath.lastIndexOf("/") + 1;
String date = new SimpleDateFormat("yyyyMMdd").format(recObj.getCalldate());
String fileName = filePath.substring(fileNameStartIndex);
String staticPath = "/var/local/recordingsbackup/";
String completeBackupPath = staticPath + date + "/" + recObj.getUsername() + "/" + recObj.getStatus() + "/" + recObj.getDisposition() + "/";

try {
InputStream get = SourceChannel.get(filePath);
try {
channelTarget.put(get, completeBackupPath + fileName);
} catch (SftpException e) {
System.out.println("Creating Directory...");
channelTarget.mkdir(completeBackupPath); // error on this line
channelTarget.put(get, completeBackupPath + fileName);
}
} catch (SftpException e) {
log.error("Error Occured ======== File or Directory dosen't exists === " + filePath);
e.printStackTrace();
}
}
  • 如果我正在创建像 /var/local/recordingsbackup/ 这样的单个目录,那么不会发生错误并且文件会成功上传。

请帮我解决这个...我怎样才能创建这些嵌套目录???

最佳答案

终于,我做到了。

这就是我取得成功的方式:

try {
channelTarget.put(get, completeBackupPath + fileName);
} catch (SftpException e) {
System.out.println("Creating Directory...");
String[] complPath = completeBackupPath.split("/");
channelTarget.cd("/");
for (String dir : complPath) {
if (folder.length() > 0) {
try {
System.out.println("Current Dir : " + channelTarget.pwd());
channelTarget.cd(folder);
} catch (SftpException e2) {
channelTarget.mkdir(folder);
channelTarget.cd(folder);
}
}
}
channelTarget.cd("/");
System.out.println("Current Dir : " + channelTarget.pwd());
channelTarget.put(get, completeBackupPath + fileName);
}

关于java - 在 Java 中使用 JSch 在服务器上创建嵌套目录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21625602/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com