控制台程序,创建和删除目录以及复制和移动文件。

 import java.nio.file.*;
import java.nio.file.attribute.*;
import java.io.IOException; public class MoveAndCopyFiles {
static void createSingleDirectory(Path path){
try{
Files.createDirectories(path);
System.out.println("\n" + path + " directory created.");
} catch (IOException e) {
System.out.println("\nDirectory creation failed:\n" + e);
}
} static boolean isDirectory(Path path) {
try{
BasicFileAttributes attr =Files.readAttributes(path,BasicFileAttributes.class);
return attr.isDirectory();
} catch (IOException e) {
System.err.println("I/O error in isDirectory method. " + e);
}
return false;
} static boolean copyFiles(Path from, Path to) {
if(!isDirectory(from)) {
System.out.println("Cannot copy files. " + from + " is not a directory.");
return false;
}
if(!isDirectory(to)) {
System.out.println("Cannot copy files. " + to + " is not a directory.");
return false;
} try (DirectoryStream<Path> files =Files.newDirectoryStream(from, "*.*")) {
System.out.println("Starting copy...");
for(Path file : files) {
Files.copy(file, to.resolve(file.getFileName()));
System.out.println(" " + file.getFileName() + " copied.");
}
} catch (IOException e) {
System.err.println("I/O error in copyFiles. " + e);
return false;
}
return true;
} static boolean moveFiles(Path from, Path to) {
if(!isDirectory(from)) {
System.out.println("Cannot move files. " + from + " is not a directory.");
return false;
}
if(!isDirectory(to)) {
System.out.println("Cannot move files. " + to + " is not a directory.");
return false;
} try (DirectoryStream<Path> files =Files.newDirectoryStream(from, "*.*")) {
System.out.println("Starting move...");
for(Path file : files) {
Files.move(file, to.resolve(file.getFileName()));
System.out.println(" " + file.getFileName() + " moved.");
}
} catch (IOException e) {
System.err.println("I/O error in copyFiles. " + e);
return false;
}
return true;
} static void waitForEnter() {
try {
System.out.println("waiting...");
System.in.read();
}catch(IOException e) {
System.err.println(e);
}
} public static void main(String[] args) {
Path current =Paths.get("E:/JavaProject/BeginningJava/Ch9_Directories/MoveAndCopyFiles");
Path newDir =Paths.get("junkDir");
newDir=newDir.toAbsolutePath();
createSingleDirectory(newDir); System.out.println("Copying files from " + current + " to " + newDir);
if(!copyFiles(current,newDir)) {
System.out.println("Copying files failed.");
return;
}
System.out.println("You can look at the directory to verify that the copy has worked.");
System.out.println("Press Enter to continue.");
waitForEnter(); Path newDir2 =Paths.get("junkDirBackup");
newDir2=newDir2.toAbsolutePath();
createSingleDirectory(newDir2); System.out.println("Moving files from " + newDir + " to " + newDir2);
if(!moveFiles(newDir,newDir2)) {
System.out.println("Moving files failed.");
return;
} System.out.println("You can look at the directory to verify that the move has worked.");
System.out.println("Press Enter to continue.");
waitForEnter(); try {
System.out.println("Deleting " + newDir + "...");
Files.delete(newDir);
}catch(IOException e) {
System.err.println("Deleting " + newDir + " failed:\n" + e);
} try (DirectoryStream<Path> files =Files.newDirectoryStream(newDir2, "*.*")) {
System.out.println("Deleting files from " + newDir2 + "...");
for(Path file:files) {
Files.delete(file);
System.out.println(" " + file.getFileName() + " deleted.");
}
System.out.println("Deleting " + newDir2 + "...");
Files.delete(newDir2);
} catch (IOException e) {
System.err.println("I/O error deleting files. " + e);
}
}
}

Java基础之访问文件与目录——移动或复制文件和目录(MoveAndCopyFiles)的更多相关文章

  1. Java基础——protected访问修饰符探讨

    Java基础——protected访问修饰符探讨 根据官方说法:(如图) protected修饰符是可以修饰其他包中的子孙类的,但是我做了个实验,结果发现了一个有趣的现象! 具体请往下看: packa ...

  2. Java基础之访问权限控制

    Java基础之访问权限控制 四种访问权限 Java中类与成员的访问权限共有四种,其中三种有访问权限修饰词:public,protected,private. Public:权限最大,允许所有类访问,但 ...

  3. Web 在线文件管理器学习笔记与总结(13)重命名文件夹(14)复制文件夹

    (13)重命名文件夹 ① 重命名文件夹通过 rename($oldname,$newname) 实现 ② 检测文件夹名是否符合规范 ③ 检测当前目录中是否存在同名文件夹名称,如果不存在则重命名成功 i ...

  4. c# 封装的文件夹操作类之复制文件夹

    c#  封装的文件夹操作类之复制文件夹 一.复制文件夹原理: 1.递归遍历文件夹 2.复制文件 二.FolderHelper.cs /// <summary> /// 文件夹操作类 /// ...

  5. 用winscp从本地上传文件到服务器上出现复制文件到远端时错误。

    用winscp从本地上传文件到服务器上出现复制文件到远端时错误. 错误码:4 服务器返回的错误消息:write failed 报错如下图所示: 分析过程: 1.刚开始以为是权限不够,后面上网查了一下是 ...

  6. IO流,字节流复制文件,字符流+缓冲复制文件

    JAVAIO如果按流向分:输入流和输出流两种 输入流的基类:InputStream   Reader 输出流的基类:OutputStream   Writer 如果按数据单元划分:字节流和字符流 字节 ...

  7. java基础知识回顾之javaIO类--File类应用:获取指定目录下面的指定扩展名的文件,将文件的绝对路径写入到目的文件当中

    /** * File文件综合应用 * 需求:获取指定目录下面,指定扩展名的文件,将文件的绝对路径写到文本文件当中. *  * 思路:1.需要深度遍历.--递归 * 2.遍历的过程中过滤指定扩展名的文件 ...

  8. RandomAccessFile(),读写文件数据的API,以及复制文件操作

    package seday03;import java.io.File;import java.io.RandomAccessFile; import java.io.IOException; /** ...

  9. UNIX环境编程学习笔记(4)——文件I/O之dup复制文件描述符

    lienhua342014-08-23 UNIX 提供了两个函数 dup 和 dup2 用于复制一个现存的文件描述符. #include <unistd.h> int dup(int fi ...

  10. Java基础之访问文件与目录——测试文件或目录的路径(TryPath)

    控制台程序,测试文件或目录的路径. import java.nio.file.Path; import java.nio.file.Paths; import java.nio.file.FileSy ...

随机推荐

  1. Yii源码阅读笔记(二)

    接下来阅读BaseYii.php vendor/yiisoft/yii2/BaseYii.php—— namespace yii; use yii\base\InvalidConfigExceptio ...

  2. Oracle 语句常见错误

    Merge into的注意点之ORA-30926:无法在源表中获得一组稳定的行? merge into 的内部处理是将table_source 的每一条记录和table_target的每一条记录对比匹 ...

  3. DefaultHttpClient使用

    转自:http://username2.iteye.com/blog/1664995 博客分类:  java 工具类 javaio  ]; } json = JSONObject.fromObject ...

  4. postgre去重复记录

    postgre去重复记录,主要用到row定位的一个系统表示 “ctid”,能查出纯净的不重复的记录,那要删掉重复值也就容易了,自己去折腾吧. 我所涉及的是得到不重复的记录,就一句话: select c ...

  5. iframe框架里镶嵌页面;<marquee>:滚动效果;<mark>做标记;内联、内嵌、外联;选择器

    标签:①②③④⑤⑥⑦★ 框架: 一.frameset:(框架集) 1.如果使用框架集,当前页面不能有body 2.cols="300,*":左右拆分,左边宽300,右边宽剩余 3. ...

  6. SimpleUrlHandlerMapping 使用

    <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.sp ...

  7. ADB not responding. If you'd like to retry, then please manually kill "adb.exe" and click 'Restart'

    ADB not responding. If you'd like to retry, then please manually kill "adb.exe" and click ...

  8. Moogoose操作之Schema实现增删查改

    Schema不仅定义了文档结构和使用性能,可以为后面的Model和Entity提供公共的属性和方法. Schema.Model.Entity的关系: Schema : 可以定义字段类型,不具备数据库的 ...

  9. Java 实现网站当前在线用户统计

    1. import java.util.HashSet; import javax.servlet.ServletContext; import javax.servlet.http.HttpSess ...

  10. iOS开发中(null)与<null>的判断

    判断(null): if(m_result==nil) {      NSLog(@"KDA!"); } 判断<null>: if([m_result isEqual: ...