mirror of
https://gitee.com/chinabugotech/hutool.git
synced 2025-05-09 23:51:34 +08:00
!375 sftp 新增将本地文件或者文件夹同步上传到远程目录的方法
Merge pull request !375 from 不忘初心/v5-dev
This commit is contained in:
commit
4c16ec55b4
@ -1383,7 +1383,21 @@ public class FileUtil extends PathUtil {
|
||||
* @param lastModifyTime 上次的改动时间
|
||||
* @return 是否被改动
|
||||
*/
|
||||
@Deprecated
|
||||
public static boolean isModifed(File file, long lastModifyTime) {
|
||||
return isModified(file,lastModifyTime);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 判断文件是否被改动<br>
|
||||
* 如果文件对象为 null 或者文件不存在,被视为改动
|
||||
*
|
||||
* @param file 文件对象
|
||||
* @param lastModifyTime 上次的改动时间
|
||||
* @return 是否被改动
|
||||
*/
|
||||
public static boolean isModified(File file, long lastModifyTime) {
|
||||
if (null == file || false == file.exists()) {
|
||||
return true;
|
||||
}
|
||||
|
@ -17,6 +17,7 @@ import com.jcraft.jsch.SftpException;
|
||||
import com.jcraft.jsch.SftpProgressMonitor;
|
||||
|
||||
import java.io.File;
|
||||
import java.io.FileInputStream;
|
||||
import java.io.OutputStream;
|
||||
import java.nio.charset.Charset;
|
||||
import java.util.ArrayList;
|
||||
@ -319,7 +320,7 @@ public class Sftp extends AbstractFtp {
|
||||
|
||||
@Override
|
||||
public boolean mkdir(String dir) {
|
||||
if(isDir(dir)){
|
||||
if (isDir(dir)) {
|
||||
// 目录已经存在,创建直接返回
|
||||
return true;
|
||||
}
|
||||
@ -332,7 +333,7 @@ public class Sftp extends AbstractFtp {
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isDir(String dir){
|
||||
public boolean isDir(String dir) {
|
||||
final SftpATTRS sftpATTRS;
|
||||
try {
|
||||
sftpATTRS = this.channel.stat(dir);
|
||||
@ -423,6 +424,35 @@ public class Sftp extends AbstractFtp {
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 将本地文件或者文件夹同步(覆盖)上传到远程路径
|
||||
*
|
||||
* @param file 文件或者文件夹
|
||||
* @param remotePath 远程路径
|
||||
*/
|
||||
public void syncUpload(File file, String remotePath) {
|
||||
if (!FileUtil.exist(file)) {
|
||||
return;
|
||||
}
|
||||
if (file.isDirectory()) {
|
||||
File[] files = file.listFiles();
|
||||
if (files == null) {
|
||||
return;
|
||||
}
|
||||
for (File fileItem : files) {
|
||||
if (fileItem.isDirectory()) {
|
||||
String mkdir = FileUtil.normalize(remotePath + "/" + fileItem.getName());
|
||||
this.syncUpload(fileItem, mkdir);
|
||||
} else {
|
||||
this.syncUpload(fileItem, remotePath);
|
||||
}
|
||||
}
|
||||
} else {
|
||||
this.mkDirs(remotePath);
|
||||
this.upload(remotePath, file);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean upload(String destPath, File file) {
|
||||
put(FileUtil.getAbsolutePath(file), destPath);
|
||||
|
Loading…
x
Reference in New Issue
Block a user