一個文件移動功能

import java.io.File;

import org.apache.tools.ant.taskdefs.Mkdir;
import org.eclipse.jdt.core.dom.ThisExpression;

/**
* @Author chenrd
* @Date 2019-10-24 下午5:16:44
* @Version 1.0 业务说明:
*
*/

public class MoveFile {
public static void main(String[] agrs) {

// move("D:\\zdjsqq122.dmp", "E:\\myFl");

// C:\Users\Administrator\Desktop\chenrd\茂南局
/*
* File file = new File("D:\\zdjsqq11.dmp");
* System.out.println(file.isFile());
* System.out.println(file.isDirectory());
*/

// System.out.println(returnTheDirName("定值通知单【xxx】-联络开关"));

// File file = new
// File("C:\\Users\\Administrator\\Desktop\\chenrd\\化州局");

// File file = new
// File("C:\\Users\\Administrator\\Desktop\\chenrd\\10kV宝圩甲线\\HZ2018.xlsx");
//
// if (file.isFile()) {
// String cj = returnTheDirName(file.getName());
// // System.out.println("cj=="+cj);
// String mkDir = mkDir(cj);
// // System.out.println("mkDir=="+mkDir);
// // System.out.println(file.getAbsolutePath());
// move(file.getAbsolutePath(), mkDir);
// }

String path = "C:\\Users\\Administrator\\Desktop\\chenrd\\茂南局";

handleFolderFile(path);

}

/**
* @param path
* 使用递归 传入一个目录,遍历所有,如果是目录继续遍历,如果是文件则移动
*/
public static void handleFolderFile(String path) {

File file = new File(path);
if (file.exists()) {
File[] files = file.listFiles();
if (null == files || files.length == 0) {
System.out.println(path + " --> 文件夹是空的!");
} else {
for (File file2 : files) {

String fileName2 = file2.getName();
if (file2.isDirectory()) {
if (yaoMaForDir(fileName2)) {
handleFolderFile(file2.getAbsolutePath());
}
} else {
boolean yaoMa = yaoMaForFile(file2.getAbsolutePath());
if (yaoMa) {
moveFile(file2.getAbsolutePath());
}else {
//移动到未分类
System.out.println("移动到未分类");
moveFileToUnKnow(file2.getAbsolutePath());
}
}
}
}
} else {
System.out.println(path + "文件不存在!");
}
}

/**
* @param fileName
* void 转入文件 执行并移动操作
*
*/
public static void moveFile(String absolutePath) {
File file = new File(absolutePath);
if (file.isFile()) {
String cj = returnTheDirName(file.getName());
String mkDir = mkDir(cj);
move(file.getAbsolutePath(), mkDir);
}
}

/**
* @param fileName
* void 转入文件 执行并移动操作
*
*/
public static void moveFileToUnKnow(String absolutePath) {
File file = new File(absolutePath);
if (file.isFile()) {
String mkDir = mkDir("没有厂家的啊啊啊啊啊啊");
move(file.getAbsolutePath(), mkDir);
}
}

/**
* @param fileName
* @return 排除 保护配置图,单线图等文件夹
*/
public static boolean yaoMaForDir(String fileName2) {
if ( fileName2.indexOf("作废") == -1 && fileName2.indexOf("执行登记表") == -1) {
return true;
} else {

}
return false;
}

/**
* @param fileName
* @return 转入文件名,如果包含【 】 如果是返回true
*/
public static boolean yaoMaForFile(String fileName) {
if (fileName.indexOf("【") != -1 && fileName.indexOf("】") != -1) {
return true;
} else {

}
return false;
}

/**
* 返回【xxx】中的xxx
*/
public static String returnTheDirName(String fileName) {
int start = fileName.indexOf("【");
int end = fileName.indexOf("】");

fileName = fileName.substring(start + 1, end);
return fileName;
}

/**
* 创建目录,返回目录
*/
public static String mkDir(String fileName) {
String filePath = "E:" + File.separator + "myFl" + File.separator + fileName;
File file = new File(filePath);
if (!file.exists()) {
file.mkdir();
}
return filePath;
}

/**
* @param fileName
* @return 判断是否为 目录,如果是返回true
*/
public static boolean isDir(String fileName) {
File file = new File(fileName);
if (file.isDirectory()) {
return true;
}
return false;
}

/**
* @param fileName
* @return 判断是否为 文件,如果是返回true
*/
public static boolean isFile(String fileName) {
File file = new File(fileName);
if (file.isFile()) {
return true;
}
return false;
}

/**
* @param absolutePath
* @param targetDir
* 传入文件名 和目标文件夹,把文件拷贝到目标文件夹 用法示例: move("D:\\zdjsqq122.dmp",
* "E:\\myFl");
*
*/
public static void move(String absolutePath, String targetDir) {
try {
File file = new File(absolutePath); // 源文件
if (file.renameTo(new File(targetDir + File.separator + file.getName()))) // 源文件移动至目标文件目录
{
System.out.println("File is moved successful!");// 输出移动成功
} else {
System.out.println("File is failed to move !");// 输出移动失败
System.out.println(absolutePath);
}
// System.out.println(fileName);
} catch (Exception e) {
System.out.println("移动文件出错,文件名为:");
System.out.println(absolutePath);
e.printStackTrace();
}
}
}

原文地址:https://www.cnblogs.com/rdchen/p/11737286.html

时间: 2024-08-30 00:28:46

一個文件移動功能的相关文章

學習 React.js:用 ReactJS 30 分鐘打造一個移動應用

Make a Mobile App with ReactJS in 30 Minutes Ken Wheeler (@ken_wheeler) React 能讓前端開發者以前所未有的方式來構建應用.它有許多好處:比如單向數據流,簡單的組件生命週期,聲明組件之類的. Reapp 是最近發佈的基於 React 的一個框架.它是一個專為性能和生產效率而生的移動應用平台.你可以把它看做是一個精心優化過的 UI 組件,並且帶有一套很好的編譯系統,以及許多有用工具,能讓你輕松構建你的應用. Reapp 給我

實現樹樁類型結構及其相應的操作【增刪查改和移動】

<h1>一.創建樹樁結構對應的表</h1><p>1.創建樹樁層次結構表</p><p>樹狀結構表採用鏈結構的設計方式,每個節點包含一個當前節點指針ID.下一節點指針ID,以及當前節點的相關信息:節點名稱.順序.有效性.是否為葉子.層次,以下為創建表結構的SQL語句</p><pre class="code" name="pre-TypeConfig">    CREATE TABLE [

歐洲國家拓展其移動和IT服務業務

中興德國子公司與JOIN簽訂了一項綜合託管服務合同,在該合同中,公司將全面負責為盧森堡和比利時的JOIN核心網路提供網路運營,點對點無線網路報告,新品發佈和維護,還負責故障檢查.維修.測試和軟體升級.公司還將攜手南京中興軟創公司,為用戶提供更快更可靠的體驗.南京中興軟創是中興旗下的IT公司,提供先進的BSS/OSS綜合解決方案和主要的新型軟體.在該協議中,中興軟創還將為JOIN網路提供整套的計費和支付管理系統. “JOIN 計畫從11月中旬開始,向其他歐洲國家拓展其移動和IT服務業務,第一個目標

考勤管理系统:实现数据在文件的读取功能

//获取系统时间的方法:Date date=new Date(new java.util.Date().getTime()); /* * 考勤管理系统:实现数据在文件的读取功能;两个模块,功能如下: * ----管理员模块: * 1.注册新用户 * 2.查询所用用户 * ----用户模块: * 1.上班打卡 * 2.下班打卡 * 3.查询历史打卡记录 * */public class TestUser { static Scanner input=new Scanner(System.in);

1602实现移屏功能

这个题目主要是设置显示开/光及光标设置 这个地方与上一个题目没有多大的区别. #include<reg52.h> #define uchar unsigned char #define uint unsigned int uchar code table[]="GOOD GOOD STUDY!"; uchar code table1[]="DAY DAY UP ^_^!"; sbit lcden=P3^4; sbit rs=P3^5; sbit dula

使用Commons FileUpLoad组件实现文件上传功能

Commons 是Apache开放的源码组织的一个java子项目,该项目主要涉及一些开发中常用的模块,如文件上传,命令行处理,数据库连接池等.FileUpLoad就是其中的一个用于处理HTTP文件上传的子项目.Commons FileUpLoad组建具有以下几个特点: 1.使用简单:Commons FileUpLoad组件可以方便的嵌入JSP文件中,在JSP文件中仅编写少量代码就可完成文件上传功能,十分方便. 2.能够全程控制上传的内容:使用Commons FileUpLoad组件提供的对象及操

文件拖拽功能失效,原来是UAC把它过滤了

碰到这样一个问题,文件拖拽功能在没有以管理员身份运行的时候是正常的,但是一旦使用管理员身份运行,这个功能就失效了,搜索了好久总算找到原因了. 在window visa以上版本里引入了用户账户控制(UAC),在管理员权限上会过滤掉一些窗口消息,文件拖拽正好也也被过滤了,解决的方法就是使用ChangeWindowMessageFilterEx()解除过滤 //解除window7以上窗口对该消息的过滤 ChangeWindowMessageFilterEx(hwndDlg, WM_DROPFILES,

nodejs 实现简单的文件上传功能

首先需要大家看一下目录结构,然后开始一点开始我们的小demo. 文件上传总计分为三种方式: 1.通过flash,activeX等第三方插件实现文件上传功能. 2.通过html的form标签实现文件上传功能,优点:浏览器兼容好. 3.通过xhr level2的异步请求,可以百度formData对象. 这里使用2做个练习. node插件请看下package.json文件 { "name": "upload", "version": "0.1

配置php.ini实现PHP文件上传功能

本文介绍了如何配置php.ini实现PHP文件上传功能.其中涉及到php.ini配置文件中的upload_tmp_dir.upload_max_filesize.post_max_size等选项,这些选项是文件上传成败的关键.我们以php.5.3.5的Windows版本为例说明. php.ini中文件上传功能配置选项说明 用文本工具(推荐EditPlus)打开php.ini 配置文件,查找 File Uploads ,在这个区域有以下3个选项: file_uploads = On 是否允许HTT