实现一个文件夹的监控功能
1.文件监听器,用于监控文件夹的各种变化,新建,修改,删除
所需依赖
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
<version>2.4</version>
</dependency>
监控程序代码
package com.example.ceshi.monitor;
import com.alibaba.fastjson.JSONObject;
import com.example.ceshi.config.MyRestTemplate;
import com.example.ceshi.config.OssProperty;
import com.example.ceshi.entity.MonitorDTO;
import com.example.ceshi.utils.ApplicationContextUtil;
import com.example.ceshi.utils.OssTemplate;
import com.flksTool.bizworks.client.model.FeiliksBody;
import com.github.binarywang.utils.qrcode.BufferedImageLuminanceSource;
import com.google.zxing.BinaryBitmap;
import com.google.zxing.EncodeHintType;
import com.google.zxing.MultiFormatReader;
import com.google.zxing.Result;
import com.google.zxing.common.HybridBinarizer;
import com.spire.barcode.BarcodeScanner;
import com.spire.pdf.PdfDocument;
import com.spire.pdf.PdfPageBase;
import freemarker.template.utility.StringUtil;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.extern.log4j.Log4j2;
import org.apache.commons.io.FileUtils;
import org.apache.commons.io.monitor.FileAlterationListenerAdaptor;
import org.apache.commons.io.monitor.FileAlterationObserver;
import org.springframework.http.HttpEntity;
import org.springframework.http.HttpHeaders;
import org.springframework.http.ResponseEntity;
import org.springframework.mock.web.MockMultipartFile;
import org.springframework.stereotype.Component;
import org.springframework.util.StringUtils;
import org.springframework.web.multipart.MultipartFile;
import javax.swing.*;
import java.awt.*;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.util.HashMap;
import java.util.Map;
import java.util.UUID;
/**
* @author tc
* @description
* @date
**/
@Log4j2
@Data
@Component
public class FileListener extends FileAlterationListenerAdaptor {
private JTextArea textArea;
/**
* File system observer started checking event.
*
* @param observer The file system observer (ignored)
*/
@Override
public void onStart(FileAlterationObserver observer) {
super.onStart(observer);
}
/**
* File created Event.
*
* @param file The file created (ignored)
*/
@Override
public void onFileCreate(File file) {
textArea.append("\r\n");
textArea.append("创建文件: " + file.getName());
log.info("创建文件(absolutePath):{}", file.getAbsolutePath());
OssTemplate template = ApplicationContextUtil.getBean(OssTemplate.class);
OssProperty property = ApplicationContextUtil.getBean(OssProperty.class);
MyRestTemplate restTemplate = ApplicationContextUtil.getBean(MyRestTemplate.class);
try {
String absolutePath = file.getAbsolutePath();
//获取要拼接的文件路径后缀
int index = absolutePath.indexOf("\\");
//返回该字符串中指定子字符串第一次出现的索引,从指定索引开始
index = absolutePath.indexOf("\\", index + 1);
String postfix = absolutePath.substring(index);
log.info("文件位置(postfix):{}", postfix);
//获取子文件夹名
String docName