資源簡介
java實現工具類實現復制、粘貼、剪切、刪除文件和文件夾
代碼片段和文件信息
package?com.song.tool;
import?org.slf4j.Logger;
import?org.slf4j.LoggerFactory;
import?org.springframework.stereotype.Component;
import?java.io.File;
import?java.io.FileInputStream;
import?java.io.FileOutputStream;
import?java.io.IOException;
/*
?*?Java實現文件復制、剪切、刪除操作
?*?文件指文件或文件夾
?*?文件分割符統一用“//“
?*/
@Component
public?class?FileOperate?{
????public?static?final?Logger?logger=LoggerFactory.getLogger(FileOperate.class);
????/**
?????*?復制文件或文件夾
?????*
?????*?@param?srcPath
?????*?@param?destDir
?????*????????????目標文件所在的目錄
?????*?@return
?????*/
????public??boolean?copyGeneralFile(String?srcPath?String?destDir)?{
????????boolean?flag?=?false;
????????File?file?=?new?File(srcPath);
????????if?(!file.exists())?{
????????????logger.info(“源文件或源文件夾不存在!“);
????????????return?false;
????????}
????????if?(file.isFile())?{?//?源文件
????????????logger.info(“下面進行文件復制!“);
????????????flag?=?copyFile(srcPath?destDir);
????????}?else?if?(file.isDirectory())?{
????????????logger.info(“下面進行文件夾中的文件復制!“);
????????????flag?=?copyFiles(srcPathdestDir);
????????}
????????return?flag;
????}
????/**
?????*?復制文件夾中文件到指定目錄
?????*?@param?srcPath??源文件目錄
?????*?@param?destDir?目標文件目錄
?????*?@return
?????*/
????public?boolean?copyFiles(String?srcPathString?destDir){
????????boolean?flag?=?false;
????????File?DirFile=new?File(srcPath);
????????if?(DirFile.isDirectory()){
????????????File[]?filesList=DirFile.listFiles();
????????????for?(File?srcFile:filesList){
????????????????if?(!srcFile.exists())?{?//?源文件不存在
????????????????????logger.info(“源文件不存在“);
????????????????????return?false;
????????????????}
????????????????//?獲取待復制文件的文件名
????????????????String?path=srcFile.getAbsolutePath();
????????????????String?fileName?=?path
????????????????????????.substring(path.lastIndexOf(“\\“)+1path.length());
????????????????String?destPath?=?destDir+“/“?+?fileName;
????????????????if?(destPath.equals(srcPath))?{?//?源文件路徑和目標文件路徑重復
????????????????????logger.info(“源文件路徑和目標文件路徑重復!“);
????????????????????return?false;
????????????????}
????????????????File?destFile?=?new?File(destPath);
????????????????if?(destFile.exists()?&&?destFile.isFile())?{?//?該路徑下已經有一個同名文件
????????????????????logger.info(“目標目錄下已有同名文件!“);
????????????????????return?false;
????????????????}
????????????????File?destFileDir?=?new?File(destPath);
????????????????try?{
????????????????????FileInputStream?fis?=?new?FileInputStream(srcPath);
????????????????????FileOutputStream?fos?=?new?FileOutputStream(destFile);
????????????????????byte[]?buf?=?new?byte[1024];
????????????????????int?c;
????????????????????while?((c?=?fis.read(buf))?!=?-1)?{
????????????????????????fos.write(buf?0?c);
????????????????????}
????????????????????fis.close();
????????????????????fos.close();
????????????????????flag?=?true;
????????????????}?catch?(IOException?e)?{
????????????????????//
????????????????????e.printStackTrace();
??????????????
評論
共有 條評論