java基础 File 递归删除文件夹中所有文件文件夹 目录(包含子目录)下的.java文件复制到e:/abc文件夹中, 并统计java文件的个数
File 递归删除文件夹中所有文件文件夹
package com.swift.kuozhan; import java.io.File;
import java.util.Scanner; /*键盘录入一个文件夹路径,删除该路径下的所有文件文件夹,包括自己。
要求:文件夹中包含有子文件夹*/ public class TheLat { public static void main(String[] args) {
File dir = inputDir();
delete(dir); } private static void delete(File dir) {
for(File file:dir.listFiles()) {
if(file.isDirectory()) {
delete(file);
}else {
file.delete();
}
}
dir.delete();
System.out.println("整个文件夹及其中文件都被删除");
} private static File inputDir() { System.out.println("请录入一个目录");
Scanner scan = new Scanner(System.in);
String str = scan.nextLine();
File file = new File(str);
if (!file.exists()) {
throw new RuntimeException("垓目录不存在!");
}
if (!file.isDirectory()) {
throw new RuntimeException("输入的不是一个目录");
} return file;
} }
又写了一遍
package com.swift.kuozhan; import java.io.File;
import java.util.Scanner; /*键盘录入一个文件夹路径,删除该路径下的所有文件夹。
要求:文件夹中包含有子文件夹*/ public class TheLat { public static void main(String[] args) {
File dir = inputDir();
delete(dir); } private static void delete(File dir) {
for(File file:dir.listFiles()) {
if(file.isDirectory()) {
delete(file);
}else {
boolean success=file.delete();
if(success) {
System.out.println("文件删除成功.");
}else {
System.out.println("正在使用,删除失败");
}
}
}
boolean success=dir.delete();
if(success) {
System.out.println("目录中的文件夹及其中文件都被删除");
}else {
System.out.println("文件夹正在使用,删除失败");
}
} private static File inputDir() { System.out.println("请录入一个目录");
Scanner scan = new Scanner(System.in);
String str = scan.nextLine();
File file = new File(str);
if (!file.exists()) {
throw new RuntimeException("垓目录不存在!");
}
if (!file.isDirectory()) {
throw new RuntimeException("输入的不是一个目录");
} return file;
} }
找不同
====================================================================================================
package com.swift.test; import java.io.File;
import java.io.FileFilter;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.Scanner; /*从控制台获取输入的文件目录然后将该目录(包含子目录)下的.java文件复制到e:/abc文件夹中,
并统计java文件的个数.
提示:如果有相同的名称的文件,如果两个Test01.java,则拷贝到目标文件夹时只能有一个Test01.java,
另一个Test01.java要修改为另一个名称:该名称可随机生成,只要不重复即可.*/ public class CopyJavaFileCount { private static int sum=0; public static void main(String[] args) throws IOException { Scanner scan=new Scanner(System.in);
String path = scan.nextLine();
File src=new File(path);
File dest=new File("d:/asdf");
if(!dest.exists()) {
dest.mkdirs();
}
copy(src,dest);
System.out.println(".java文件的个数是"+sum);
} private static void copy(File src, File dest) throws IOException { File[] files = src.listFiles(new FileFilter() { @Override
public boolean accept(File pathname) { if(pathname.isDirectory()) {
try {
copy(pathname,dest);
} catch (IOException e) {
e.printStackTrace();
}
}
if(pathname.getName().toLowerCase().endsWith(".java")) {
return true;
}
return false;
}
});
for(File file:files) {
String name = file.getName();
File destFile=new File(dest,name);
copyFile(file,destFile);
System.out.println(file);
}
sum=sum+files.length;
} public static void copyFile(File file1,File file2) throws IOException{
FileInputStream fis=new FileInputStream(file1);
// 2.创建字节输出流对象关联文件路径:D盘下的a.png
FileOutputStream fos=new FileOutputStream(file2);
// 3.定义一个字节数组,用来存放读取到文件字节数
byte[] buf=new byte[128];
int len;
// 4.使用循环不断从字节输入流读取一个字节数组,每读取一个字节数组就利用输出流写出一个字节数组。
while((len=fis.read(buf))!=-1) {
fos.write(buf,0,len);
}
System.out.println("已经copy成功");
// 5.关闭流,释放资源
fis.close();
fos.close();
}
}
java基础 File 递归删除文件夹中所有文件文件夹 目录(包含子目录)下的.java文件复制到e:/abc文件夹中, 并统计java文件的个数的更多相关文章
- Java版本的删除指定目录及子目录下名叫“xxx.txt”的所有文件
以前写过一个python版本的,但是在查找文件路径的时候出现错误,无法正确的获取到文件的路径,就造成无法删除该路径下的“xxx.txt”文件. 当时以为是windows版本系统的错误造成这个问题的,也 ...
- Java版本的在指定目录及子目录下创建指定的文件
和删除指定目录及子目录下名叫“xxx.txt”的所有文件一样,也是使用递归的方式实现的. 代码如下: public class Example826003 { private static FileO ...
- python递归列出目录及其子目录下所有文件
python递归列出目录及其子目录下所有文件 一.前言 函数的递归,简单来说,就是函数内部调用自己 先举个小例子,求阶乘 def factorial(n): if n == 0: return 1 e ...
- 2.获取指定目录及子目录下所有txt文件的个数,并将这些txt文件复制到F盘下任意目录
package cn.it.text; import java.io.BufferedInputStream; import java.io.BufferedOutputStream; import ...
- [整理]VS2010中如何添加“依赖","库目录","包含目录"
VS2010中如何添加“依赖","库目录","包含目录" 1. 添加编译所需要(依赖)的 lib 文件[解决方案资源管理器]“项目->属性-&g ...
- java基础 File与递归练习 使用文件过滤器筛选将指定文件夹下的小于200K的小文件获取并打印按层次打印(包括所有子文件夹的文件) 多层文件夹情况统计文件和文件夹的数量 统计已知类型的数量 未知类型的数量
package com.swift.kuozhan; import java.io.File; import java.io.FileFilter; /*使用文件过滤器筛选将指定文件夹下的小于200K ...
- JAVA基础-File类
一.File类概述 File类是文件和目录路径名的抽象表示形式.File类可以理解为一个文件路径或者文件夹路径的JAVA表现形式,而路径又可以分为绝对路径(是一个固定路径,从盘符开始),相对路径(相对 ...
- java基础-File
File类 * File更应该叫做一个路径, 文件路径或者文件夹路径 * 路径分为绝对路径和相对路径 * 绝对路径是一个固定的路径,从盘符开始 * 相对路径相对于某个位置,在eclipse下 ...
- Linux复制指定目录及子目录下特定类型的文件
首先建立一个用于测试的目录,用'tree'命令查看其结构如下所示: 可见,目录中主要包含用于测试的*.txt文件和用于充当炮灰的*.tes文件 目标是保持当前的目录结构,只把txt文件复制出来 方法一 ...
随机推荐
- TCP连接的ISN、连接建立超时及TCP的长短连接
问题现象: 一.TCP连接的ISN 之前我们说过初始建立TCP连接的时候的系列号(ISN)是随机选择的,那么这个系列号为什么不采用一个固定的值呢?主要有两方面的原因 防止同一个连接的不 ...
- java多线程通过管道流实现不同线程之间的通信
java中的管道流(pipeStream)是一种特殊的流,用于在不同线程间直接传送数据.一个线程发送数据到输出管道,另外一个线程从输入管道中读取数据.通过使用管道,实现不同线程间的通信,而不必借助类似 ...
- scrollHieght、offsetHeight、clientHeight、width、height
1.scroll滚动(scrollTop.Left.Height.Width) scroll()当用户滚动指定的元素时,会发生 scroll 滚动事件: scrollWidth.scrollHeigh ...
- Chrome浏览器正常,IE下界面却乱了
背景:项目实战中总会遇到一些小问题,IE特别多 Chrome浏览器页面正常,IE下界面就乱了 原因分析 1.首先想到的是代码有米有问题呢?主要指的是兼容性 2.兼容性没有问题,那我们打开IE的开发工具 ...
- Linux mysql 基础操作
命令 #查看版本 mysql --version #进入mysql 命令 mysql -u root -p mysql -u root@localhost (没有密码的情况) #创建数据库 ...
- CSS列表(新闻列表、导航条)常见写法
以下面这个UL做演示 <ul> <li><a href="#"><span>2014-4-1</span>教育</ ...
- 1064. 计算斐波那契第n项 通项公式
题目描述 输入n,编写程序输出斐波那契数列的第n项.其中斐波那契数列f(n)的定义如下: f(1)=0,f(2)=1 f(n)=f(n-1)+f(n-2)(n>=2) 输入 一行 ...
- 执行引入外部 jar 包的类的方法
liunx 系统中,命令行中语法:(.后面是冒号:) java -cp .:third.jar MyClass windows 系统中命令行的语法:(.后面是分号;) java -cp .;third ...
- Vue编译时写在style中的路径问题
写在vue文件里面的style样式,在添加例如背景图片的时候,如果用的是相对路径,那么build出来的css文件的路径将会出错,导致找不到图片. 通过查找资料,在https://segmentfaul ...
- 如何解决ArcGIS Runtime SDK for Android中文标注无法显示的问题
自10.2版本开始,我就一直被ArcGIS Runtime SDK for Android的中文标注无限困扰.无论是驻留于内存中的Graphic 的文本符号TextSymbol,还是新增的离线geod ...