黑马程序员技术交流社区
标题: 从键盘接收一个文件夹路径,把文件夹中的所有文件以及文... [打印本页]
作者: qetu001212 时间: 2016-8-11 00:02
标题: 从键盘接收一个文件夹路径,把文件夹中的所有文件以及文...
从键盘接收一个文件夹路径,把文件夹中的所有文件以及文件夹的名字按层级打印, 例如:
aaa是文件夹,里面有bbb.txt,ccc.txt,ddd.txt这些文件,有eee这样的文件夹,eee中有fff.txt和ggg.txt,打印出层级来
aaa
bbb.txt
ccc.txt
ddd.txt
eee
fff.txt
ggg.txt
作者: wangsir666 时间: 2016-8-11 21:43
Scanner里边有方法,你可以试试,我只试过扫描文件并输出
作者: 水月灬清影 时间: 2016-8-12 14:25
你是说这样么?[Java] 纯文本查看 复制代码
import java.io.File;
import java.util.Scanner;
public class DirectoryDemo {
public static void main(String[] args) {
System.out.println("请输入路径");
Scanner sc = new Scanner(System.in);
String path=sc.nextLine();
File dir=new File(path);
System.out.println(dir.getName());
ergodic(dir, 0);
}
private static void ergodic(File dir, int level) {
String prePAUSE = " ";
for (int i = 0; i < level; i++) {
prePAUSE += " ";
}
File[] files = dir.listFiles();
for (int i = 0; i < files.length; i++) {
System.out.println(prePAUSE + files.getName());
if (files.isDirectory()) {
ergodic(files, level + 1);
}
}
}
}
作者: 水月灬清影 时间: 2016-8-12 14:27
本帖最后由 水月灬清影 于 2016-8-12 14:30 编辑
作者: 爱学习爱java.. 时间: 2016-8-12 15:16
学习了,虽然有的地方没看懂
作者: 愿望变美 时间: 2016-8-13 10:57
[Java] 纯文本查看 复制代码
import java.io.File;
import java.util.Scanner;
public class Test {
public static void main(String[] args) {
File dir = getFile();
print(dir,"");
}
private static void print(File dir ,String s) {
System.out.println(s + dir.getName());
File[] subFile = dir.listFiles();
s = s + " ";
for (File file : subFile) {
if(file.isFile()){
System.out.println(s + file.getName());
}else if(file.isDirectory()){
print(file,s);
}
}
}
private static File getFile() {
System.out.println("请输入文件夹名");
Scanner sc = new Scanner(System.in);
while(true){
String s = sc.nextLine();
File dir = new File(s);
if(dir.isDirectory()){
return dir;
}else{
System.out.println("请输入正确的文件夹名称");
}
}
}
}
作者: 请叫我院长 时间: 2016-9-9 23:14
package practice.demo05;
import java.io.File;
import java.io.IOException;
import java.util.Scanner;
public class Demo {
public static void main(String[] args) throws IOException {
System.out.println("请输入一个文件夹的 路径:");
String str = new Scanner(System.in).next();
File file = new File(str);
String tab="\t";
function(file,tab);
}
public static void function(File file,String tab01) throws IOException {
File[] fileArr = file.listFiles();
tab01+="\t";
for(File f: fileArr){
if(f.isDirectory()){
System.out.println(tab01+f.getName());
function(f,tab01);
}else{
System.out.println(tab01+f.getName());
}
}
}
}
作者: 芳燚乐乐 时间: 2016-9-10 00:23
有些地方还是不太理解
作者: lipeng518 时间: 2016-9-10 00:40
看评论学到了,技术大牛带带我
作者: battlexing 时间: 2017-8-21 01:25
public class Test02_06 {
public static void main(String[] args) {
// 创建键盘输入对象
Scanner sc = new Scanner(System.in);
System.out.println("请输入一个文件夹路径:");
// 接收用户输入的路径
String filePath = sc.nextLine();
// 根据路径字符串创建文件对象
File dir = new File(filePath);
// 调用calculate方法获得文件大小
long length = calculate(dir);
System.out.println("文件夹总大小:" + length);
}
/*
* 获得文件夹的大小
*/
public static long calculate(File dir){
long length = 0;
// 获得文件数组
File files[] = dir.listFiles();
// 遍历数组
for (File file : files) {
// 判断是否是文件
if(file.isFile()) {
length += calculate(file);
} else {
length += file.length();
}
}
return length;
}
}
作者: battlexing 时间: 2017-8-21 01:28
package cn.itcastG2;
import java.io.File;
///递归遍历将指定文件夹的所有文件(包括所有子文件夹的文件)的全路径输出在控制台。
public class Test03 {
public static void main(String[] args) {
File file = new File("d:\\work\\abc");
prinftallfiles(file);
}
private static void prinftallfiles(File file) {
File[] lf = file.listFiles();
for (File files : lf) {
if(!files.isDirectory()){
System.out.println(files.getAbsolutePath());
}else{
prinftallfiles(files);
}
}
}
}
作者: Oliverwqcwrw 时间: 2017-8-21 11:29
public class Test03_04 {
public static void main(String[] args) {
// 创建键盘输入对象
Scanner sc = new Scanner(System.in);
System.out.println("请输入一个文件夹路径:");
// 接收用户输入的路径
String filePath = sc.nextLine();
// 根据路径字符串创建文件对象
File dir = new File(filePath);
// 打印目录结构
printDir(dir,0);
}
/*
* 打印目录结构
* level:表示目录的层次
*/
public static void printDir(File f,int level){
for (int i = 0; i < level; i++) {
System.out.print("\t");
}
System.out.println(f.getName());
if(f.isDirectory()) {
File[] files = f.listFiles();
for (File file : files) {
printDir(file,level + 1);
}
}
}
}
作者: 枫林醉wisdom 时间: 2017-10-2 22:42
本帖最后由 枫林醉wisdom 于 2017-10-2 22:43 编辑
[AppleScript] 纯文本查看 复制代码
package cn.itcast.IOtesthomewo;
import java.io.File;
import java.io.FileFilter;
import java.util.Scanner;
import java.util.Set;
/*从键盘接收一个文件夹路径,把文件夹中的所有文件以及文件夹的名字按层级打印
例如:
aaa是文件夹,里面有bbb.txt,ccc.txt,ddd.txt这些文件,有eee这样的文件夹,eee中有fff.txt和ggg.txt,打印出层级来
aaa
bbb.txt
ccc.txt
ddd.txt
eee
fff.txt
ggg.txt
*/
public class HomeWork10 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入文件夹路径");
String s = sc.nextLine();
File file = new File(s);
count(file, 0);
}
public static void count(File file, int num) {
for (int i = 0; i < num; i++) {
System.out.print("\t");
}
if(file.isDirectory()) {
System.out.println(file.getName());
File[] files = file.listFiles();
for (File file2 : files) {
if(file2.isDirectory()) {
count(file2, num + 1);
} else {
for (int i = 0; i < num + 1; i++) {
System.out.print("\t");
}
System.out.println(file2.getName());
}
}
} else {
System.out.println(file.getName());
}
}
}
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) |
黑马程序员IT技术论坛 X3.2 |