程序思路:startCopy方法这只成private Boolean 传入两个参数 String src,String dest,分别代表源文件和目标文件。
File srcFile=new File(src);实例化一个文件对象 将代表源文件的参数传入进去,接下来判断源文件是否存在
If(!srcFile.exists())
{
JOptionPane.showmessage(null,“源文件”+ src+”不存在”);
Finished=true;
Return false;
}
接下来实例化一个文件对象,代表目标文件
File destFile=new File(dest+File.separator+ srcFile.getName());
如果目标文件已经存在 那么就要删除目标文件
showConfirmDialog:
public static int showConfirmDialog(Component parentComponent,
Object message,
String title,
int optionType,
int messageType,
Icon icon)
throws HeadlessException
parentComponent - 确定在其中显示对话框的 Frame;如果为 null 或者 parentComponent 不具有 Frame,则使用默认的 Frame
message - 要显示的 Object
title - 对话框的标题字符串
optionType - 指定可用于对话框的选项的 int:YES_NO_OPTION、YES_NO_CANCEL_OPTION 或 OK_CANCEL_OPTION
messageType - 指定此消息种类的 int,主要用于确定来自可插入外观的图标:ERROR_MESSAGE、INFORMATION_MESSAGE、WARNING_MESSAGE、QUESTION_MESSAGE 或 PLAIN_MESSAGE
icon - 要在对话框中显示的图标
If(destFile.exists())
{
Int ref=JOptionPane.showConfirmDialog(null, "文件已经存在,确定要删除吗?","警告"+JOptionPane.OK_CANCEL_OPTION,
JOptionPane.INFORMATION_MESSAGE)
}
If(!ref==JOptionPane.OK_OPTION)
{
Finished=true;
Return false;
}
Finished=true;
Retuen false;
If(srcFile.isDirectory())
{
Finished=true;
Return copyDir(srcFile.getsolutPath,dest);
}
Else{
Return copyRealFileThread(src,destFile.getxolutePath);
}
Return true;
接下来写一个复制真正文件的方法 就是说 复制的文件中间是没有目录的 只含有文件。
Public Boolean copyRealFile(String srcName,String destName)//我们需要创建文件流的对象
{
Try{
//创建一个文件输入流的对象 将源文件的名字放到输入流对象中
FileInputStream fis=new FileInputStream(srcName);
//创建一个BufferedInputStream对象 ,把已经放入了文件的文件流转换成字节流
BufferedInputStream bis=new BufferedInputStream(fis);
FileOutputStream fos=new FileOutputStream(destName);
BufferedOutputStream bos=new BufferedOutputStream(fos);
Int i=0;
If((i= bis.read())!=-1)
Bos.write(i);
Fis.close();
Fos.close();
//文件个数累计加加
fileCount++;
}
Catch(Exception e)
{}
Return true;
}
接下来,将复制文件的方法放入线程池中 让线程池中的线程去完成它
Private void copyRealFileThread(final String srcName,final String destName)
{
Ruunable runnable=new Runnable()
{
Public void run()
{
copyRealFile(srcName,destName);
}
};
threadPool.excute(runnable);//执行一个实现了Runnable接口的方法
}
接下来要取得复制文件的返回结果 ,在Main方法里面实现这个方法 然后打印出来
Public String getResultDescription()
{
//当拷贝还没有完成的时候 线程休眠三秒钟
While(!finished){
Try{
Thread.sleep(3000);
}
Catch(Exception e){
}
Return “复制的文件个数”+fileCount+
}
}
分享到:
相关推荐
parse-server-example, 使用Express和解析服务器模块的示例服务器 parse-server-example使用解析服务器 MODULE的示例项目。阅读下面的完整解析服务器指南: ...
parse-android-1.13.1.jar,parse-android-1.13.1-sources.jar
"前端开源库-parse-key"就是这样一个专为前端开发者设计的库,它的主要功能是解析键值,将字符串转化为与Node.js的readline模块产生的键对象格式相匹配的数据结构。 Node.js的readline模块主要用于交互式读取流数据...
官方离线安装包,亲测可用
在开发过程中,`parse-class-master`这个文件可能是一个项目源码的主目录,包含`parse-class`库的源文件、示例、测试用例等资源。如果你想深入理解其工作原理或对其进行定制,可以查看这些源码文件。通常,`index.js...
在`parse5-master`这个压缩包中,很可能包含了parse5库的源码和相关资源,你可以通过阅读源码、查看示例和文档来更深入地理解这个库的工作原理,以及如何有效地使用`parse5-htmlparser2-tree-adapter`。同时,熟悉这...
2. **错误处理**:当YAML格式不正确时,`remark-parse-yaml`会抛出有用的错误信息,帮助开发者定位问题。 3. **与其他`remark`插件集成**:由于它是`remark`生态系统的一部分,可以与其他`remark`插件无缝配合,实现...
资源分类:Python库 所属语言:Python 资源全名:dbc_parse-1.0.7-py3-none-any.whl 资源来源:官方 安装方法:https://lanzao.blog.csdn.net/article/details/101784059
在压缩包`parse-element-master`中,通常包含`parse-element`库的源代码、示例、测试用例以及相关的文档。通过阅读源码,你可以深入理解其工作原理;查看示例,可以帮助你快速上手使用;测试用例则可以作为使用该库...
Arduino-Parse-SDK-Arduino.zip,arduino sdk for the parse platformwarning-由于缺少使用和贡献,此项目已退出,如果您希望继续使用,请分叉或如果您希望维护此项目,请让您自己知道,Arduino是一家开源软硬件公司和...
"smart_parse-master.rar" 是一个开源项目,主要目标是实现智能解析和填充地址信息,尤其适用于网页中的jQuery应用。这个项目可以在GitHub上找到,表明它遵循开放源代码的精神,允许用户自由下载、查看和修改源代码...
"parse-android-test-app"是一个开源项目,专门设计用于测试Android应用程序对服务器数据的解析能力。这个项目可以帮助开发者验证和优化他们的数据解析逻辑,确保在实际应用中能够正确、高效地处理各种数据格式。 ...
`parse-json`库就是为了解决这个问题,它提供了一个更强大的JSON解析功能,能够给出更详细的错误信息,帮助开发者更快地定位问题。 `parse-json`是由Sindre Sorhus创建的,他是一个知名的开源开发者,贡献了许多高...
《Python库解析:parse-torrent-title-1.4.tar.gz》 在信息技术领域,Python以其简洁易读的语法和强大的库支持,成为了开发者们青睐的编程语言之一。本篇文章将聚焦于一个名为`parse-torrent-title`的Python库,...
- **漏洞引入点**:作者在代码提交`https://github.com/parse-community/parse-server/commit/50eed3cffe80fadfb4bdac52b2783a18da2cfc4f`中增加了`createHandler`函数,该函数负责处理HTTP请求中的`metadata`和`...
在本文中,我们将深入探讨Laravel开发中的一个重要组件——laravel-parse-sdk。这个SDK是专门为Laravel 5设计的,用于连接和操作Parse服务,它允许开发者在自托管的Parse服务器上存储和管理数据,从而扩展了Laravel...
parse 示例脚手架,集成parse-server、parse-dashboard、parse-swagger Installation clone本项目后: cd parse-scaffold npm install npm start 启动后,访问:https://${parse_host}:${parse_port}/,显示: 欢迎...
资源分类:Python库 所属语言:Python 资源全名:parse-1.1.6.tar.gz 资源来源:官方 安装方法:https://lanzao.blog.csdn.net/article/details/101784059
2. **跨浏览器兼容**:考虑到不同浏览器对错误堆栈的实现可能存在差异,`parse-stack`致力于提供统一的解析接口,确保在各种浏览器环境下的稳定性和一致性。 3. **模块化设计**:作为前端库,`parse-stack`遵循模块...
在本文中,我们将深入探讨Laravel开发中的一个重要工具——laravel-parse-scaffolder。这个工具专为提升开发效率而设计,能够自动生成CRUD(创建、读取、更新、删除)操作所需的控制器、视图和模型,从而加速数据库...