一。 本组课题

简易文件资源管理器

需求分析

  1. 查找文件功能:可以根据指定的目录名与待查找的文件,在指定目录中进行查找,并返回结果
  2. 实现文件的拷贝与粘贴功能
  3. 实现文本类文件(.txt, .java, .ini, .bat, )的预览功能(比如实现对前100行文本在某个小窗口中进行预览)
  4. 实现文件的重命名功能
  5. 实现对某个文件夹进行统计功能(如统计文件夹中文件数目)

    在安卓系统上实现

本人任务

1. 对文件及文件夹进行拷贝和剪切的功能。

二. 总体设计(概要设计)

主要设计为Folder类和Filel类



Folder类

提供绝对路径为参数获取对象

可获得目录的各种信息

并提供格式化size数据的方法

Filel类

直接继承File类,简化设计

提供复制文件或为文件夹的方法

APP基于安卓API18

主Activiy继承于ListView直接显示根目录

视图使用Listview与继承自BaseAdapter的自定义适配器组合

适配器getview中使用convertView,holder静态类加快UI流畅性

三. 是西安功能的主要代码块


package test; import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException; public class File1 extends File{ public File1(String path) {
super(path);
// TODO Auto-generated constructor stub
}
/**
* 复制选择
* @param destDir
* @param delscr
* @return
*/
public boolean copyTo(String destDir,boolean delscr){
File file = new File(super.getPath());
if(file.isDirectory())
return copyDirectory(super.getPath(), destDir,delscr);
else
return copyFile(super.getPath(), destDir,delscr); }
/**
* 复制文件
* @param scrPath
* @param destDir
* @param delscr
* @return
*/
private boolean copyFile(String scrPath, String destDir,boolean delscr) {
boolean flag = false;
File file = new File(scrPath);
String filename =file.getName();
String destPath ;
if(destDir.equals("/")){
destPath = destDir+filename;
}
else{
destPath = destDir+"/"+filename;
}
File destFile = new File(destPath);
if(destFile.exists()&&destFile.isFile()){
System.out.println("目标目录下已有同名文件");
return false;
}
File newfile = new File(destPath);
try{
FileInputStream fis = new FileInputStream(scrPath);
FileOutputStream fos = new FileOutputStream(newfile);
byte[]buf =new byte[1024];
int c;
while((c=fis.read(buf))!=-1){
fos.write(buf,0,c);
}
fis.close();
fos.close();
flag=true;
}catch(IOException e){ }
if(flag){
System.out.println("复制成功");
}
if(delscr == true){
file.delete();
}
return flag;
}
/**
* 复制文件夹
* @param scrPath
* @param destDir
* @param delscr
* @return
*/
private boolean copyDirectory(String scrPath, String destDir,boolean delscr) {
boolean flag = false;
File scrFile = new File(scrPath);
String dirName = scrFile.getName();
String destPath ;
if(destDir.equals("/")){
destPath = destDir+dirName;
}
else{
destPath = destDir+"/"+dirName;
}
File[] files = scrFile.listFiles();
File desdir = new File(destPath);
if(desdir.exists()&&desdir.isDirectory()){
return false;
}
desdir.mkdir();
for(File f:files){
if(f.isDirectory()){
copyDirectory(f.getPath(),desdir.getPath(),delscr);
}
if(f.isFile()){
copyFile(f.getPath(),destPath,delscr);
flag = true;
} }
if(delscr == true){
scrFile.delete();
}
return flag;
}
}

四. 功能运行的成功界面











《Java课程设计》的更多相关文章

  1. 简单物联网:外网访问内网路由器下树莓派Flask服务器

    最近做一个小东西,大概过程就是想在教室,宿舍控制实验室的一些设备. 已经在树莓上搭了一个轻量的flask服务器,在实验室的路由器下,任何设备都是可以访问的:但是有一些限制条件,比如我想在宿舍控制我种花 ...

  2. 利用ssh反向代理以及autossh实现从外网连接内网服务器

    前言 最近遇到这样一个问题,我在实验室架设了一台服务器,给师弟或者小伙伴练习Linux用,然后平时在实验室这边直接连接是没有问题的,都是内网嘛.但是回到宿舍问题出来了,使用校园网的童鞋还是能连接上,使 ...

  3. 外网访问内网Docker容器

    外网访问内网Docker容器 本地安装了Docker容器,只能在局域网内访问,怎样从外网也能访问本地Docker容器? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装并启动Docker容器 ...

  4. 外网访问内网SpringBoot

    外网访问内网SpringBoot 本地安装了SpringBoot,只能在局域网内访问,怎样从外网也能访问本地SpringBoot? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装Java 1 ...

  5. 外网访问内网Elasticsearch WEB

    外网访问内网Elasticsearch WEB 本地安装了Elasticsearch,只能在局域网内访问其WEB,怎样从外网也能访问本地Elasticsearch? 本文将介绍具体的实现步骤. 1. ...

  6. 怎样从外网访问内网Rails

    外网访问内网Rails 本地安装了Rails,只能在局域网内访问,怎样从外网也能访问本地Rails? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装并启动Rails 默认安装的Rails端口 ...

  7. 怎样从外网访问内网Memcached数据库

    外网访问内网Memcached数据库 本地安装了Memcached数据库,只能在局域网内访问,怎样从外网也能访问本地Memcached数据库? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装 ...

  8. 怎样从外网访问内网CouchDB数据库

    外网访问内网CouchDB数据库 本地安装了CouchDB数据库,只能在局域网内访问,怎样从外网也能访问本地CouchDB数据库? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装并启动Cou ...

  9. 怎样从外网访问内网DB2数据库

    外网访问内网DB2数据库 本地安装了DB2数据库,只能在局域网内访问,怎样从外网也能访问本地DB2数据库? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装并启动DB2数据库 默认安装的DB2 ...

  10. 怎样从外网访问内网OpenLDAP数据库

    外网访问内网OpenLDAP数据库 本地安装了OpenLDAP数据库,只能在局域网内访问,怎样从外网也能访问本地OpenLDAP数据库? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装并启动 ...

随机推荐

  1. centos下从源码安装openssl

    cd /usr/src wget https://www.openssl.org/source/openssl-1.0.1g.tar.gz -O openssl-1.0.1g.tar.gz tar - ...

  2. Myeclipse和windows调节成护眼色

    作为程序员,对着电脑屏幕久了,眼睛难免疲劳,下面相信对我们每个 人都很有帮助. windows xp:桌面空白处右键,属性,外观-高级,然后在项目那栏选窗口,再点颜色-其它,然后把色调设为85(默认是 ...

  3. Framework7

    完美的HTML框架 可以构建精美的iOS & Android 应用

  4. 修改(同步)linux时间

    新申请下来的机器的时间现在我们所在的时区不一致,需要同步成东八区 查看当前的时间: date -R; date +%z 修改时区: cp /usr/share/zoneinfo/Asia/Shangh ...

  5. vim 基本编辑操作

    一.光标跳转到指定行 1.在命令模式下,跳转到指定行  :n   (n为行号) 2.命令行加参数 vim +n fileName 3.命令行加参数 vim + fileName 光标移至文件底部 4. ...

  6. oracle内存优化

    一直都想总结一下oracle内存调整方面的知识,最近正好优化一个数据库内存参数,查找一些资料并且google很多下.现在记录下来,做下备份.         一.概述:                ...

  7. 接口测试之postman简介

    很长时间没有用postman了,今天趁着有点时间,对这个接口测试的利器从以下几个方面简单回顾下. 1.postman介绍 2.Postman安装 3.Postman建立.管理.回放请求 4.Postm ...

  8. pwnable.kr brainfuck之write up

    I made a simple brain-fuck language emulation program written in C. The [ ] commands are not impleme ...

  9. (转)没有IE就没有伤害!浏览器兼容性问题解决方案汇总

    普及:浏览器的兼容性问题,往往是个别浏览器(没错,就是那个与众不同的浏览器)对于一些标准的定义不一致导致的.俗话说:没有IE就没有伤害. 贴士:内容都是自己总结的,不免会出现错误或者bug,欢迎更正和 ...

  10. opencv VideoCapture使用示例

    在centos7下验证VideoCapture功能. 1 opencv处理视频时要使用ffmpeg,这里使用添加源的方式安装,分为3步 1.1 先安装EPEL Release,使用其他的repo源,所 ...