
Java使用输入输出流完成,剪切,复制,粘贴,删除的功能(最好是代码解决此问题,比较直观,谢谢)
Java使用输入输出流完成,剪切,复制,粘贴,删除的功能(最好是代码解决此问题,比较直观,谢谢)模拟Windows系统完成4大功能,其中路径由用户从键盘输入,操作是否成功...
Java使用输入输出流完成,剪切,复制,粘贴,删除的功能(最好是代码解决此问题,比较直观,谢谢)模拟Windows系统完成4大功能,其中路径由用户从键盘输入,操作是否成功请给出提示
展开
1个回答
展开全部
你可以看看Java的NIO的包和FileVisitor interface以及walkFileTree方法,这里写两个例子,一个删除一个复制,代码来自于oracle
删除
Path start = ...
Files.walkFileTree(start, new SimpleFileVisitor<Path>() {
@Override
public FileVisitResult visitFile(Path file, BasicFileAttributes attrs)
throws IOException
{
Files.delete(file);
return FileVisitResult.CONTINUE;
}
@Override
public FileVisitResult postVisitDirectory(Path dir, IOException e)
throws IOException
{
if (e == null) {
Files.delete(dir);
return FileVisitResult.CONTINUE;
} else {
// directory iteration failed
throw e;
}
}
});
复制
final Path source = ...
final Path target = ...
Files.walkFileTree(source, EnumSet.of(FileVisitOption.FOLLOW_LINKS), Integer.MAX_VALUE,
new SimpleFileVisitor<Path>() {
@Override
public FileVisitResult preVisitDirectory(Path dir, BasicFileAttributes attrs)
throws IOException
{
Path targetdir = target.resolve(source.relativize(dir));
try {
Files.copy(dir, targetdir);
} catch (FileAlreadyExistsException e) {
if (!Files.isDirectory(targetdir))
throw e;
}
return CONTINUE;
}
@Override
public FileVisitResult visitFile(Path file, BasicFileAttributes attrs)
throws IOException
{
Files.copy(file, target.resolve(source.relativize(file)));
return CONTINUE;
}
});
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询