file工具类
public static List<String> getAllFileName(String path,List<String> fileNameList) {
File file = new File(path);
File[] fileList = file.listFiles();
for (int i = 0; i < fileList.length; i++) {
if (fileList[i].isFile()) {
fileNameList.add(fileList[i].getName());
}
if (fileList[i].isDirectory()) {
getAllFileName(fileList[i].getAbsolutePath(),fileNameList);
}
}
return fileNameList;
}
sftp工具类
@SuppressWarnings("unchecked")
public static boolean Isexists(String dst,String rootFileName) throws SftpException {
Vector<ChannelSftp.LsEntry> vector = sftp.ls(dst);
for (ChannelSftp.LsEntry en : vector) {
String fileName = en.getFilename();
if (fileName.equals(rootFileName)) {
return true;
}
}
return false;
}
Controller
private static String rootUrl = "D:\\Daisy\\SftpTest";
private static String dst = "/SftpTest";
@Scheduled(cron = "*/1 * * * * ?")
public static void Picture() {
ChannelSftp channelSftp = null;
try {
Sftp sftp = SftpConfig.getSftp();
channelSftp = SftpUtil.connect(sftp.getInnerhost(), sftp.getInneruserName(), sftp.getInnerpassword(),
sftp.getInnerport());
List<String> fileNameList = new ArrayList<String>();
List<String> fileList = FileUtils.getAllFileName(rootUrl,fileNameList);
for (int i = 0; i < fileList.size(); i++) {
String fileUrl = rootUrl + "\\" + fileList.get(i);
File file = new File(fileUrl);
String rootFileName = file.getName();
Boolean ig = SftpUtil.Isexists(dst,rootFileName);
if(ig.equals(false)) {
SftpUtil.bacthUploadFile(dst, fileUrl);
}
}
} catch (Exception e) {
e.printStackTrace();
} finally {
channelSftp.disconnect();
}
}
测试结果
图片1为本地图片
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/99eae2bcdb19d7e02127ccd7e4d97379.png#pic_center)
图片2为第一次上传至服务器的图片
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/971048c89b5759eec77b8a4f83c85186.jpeg#pic_center)
图片3(在本地文件夹内新添加一张图片)
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/7444eae425c320dabebaccf279a35fdf.png#pic_center)
图片4为第二次上传至服务器的图片,可以看出本地图片有同步刷新到服务器端。
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/9b19bbda8094dff32efc2b15f2019ac9.jpeg#pic_center)