永发信息网

java编程 现有有一个根文件夹s 两个子文件夹分别是sw和sp sw里有1.txt的文件

答案:3  悬赏:0  手机版
解决时间 2021-11-28 03:27
  • 提问者网友:兔牙战士
  • 2021-11-27 23:17
java编程 现有有一个根文件夹s 两个子文件夹分别是sw和sp sw里有1.txt的文件
最佳答案
  • 五星知识达人网友:千夜
  • 2021-11-27 23:22
今天心情好,随手写一个(手写,未测试):
//复制文件
public void copy(String path1, String path2) {
FileInputStream fi = new FileInputStream(path1);
FileOutputStream fo = new FileOutputStream(path2);
byte[] data = new byte[8192];
int len = -1;
while((len=fi.read(data, 0, data.length))>0) {
fo.write(data, 0, len);
}
fo.flush();
fi.close();
fo.close();
}

//获取子目录下的所有文件,忽略目录
public List getFiles(String dir) {
File f = new File(dir);
String[] files = f.list();
if(files==null)
return null;
if (files.length==0)
return null;
List list = new ArrayList();
for(int i=0;i File subfile = new File(dir, files[i]);
if(subfile.isFile()) {
list.add(subfile.toString());
}
}
return list;
}

//判断指定的列表是否包含指定的元素
public boolean contains(List container, Stirng element) {
for(String e : container) {
if(e.equasl(element)) {
return true;
}
}
}

//根据文件全路径名以及目标目录生成将要复制到的目的地的全路径名
public String targetName(String srcPath, Stirng targetDir) {
File f = new File(srcPath);
return new File(targetDir, f.getName).getAbsolutePath();
}

//检查文件是否同步,不同步则拷贝
public void doCopy() {
String root = "/s";
String src = root + "/sw";
String dest = root + "/sp";
List srcList = getFiles(src);
List destList = getFiles(dest);
for(String s : srcList) {
if(!contains(destList, s)) {
copy(s, targetName(s, dest))
}
}
}
全部回答
  • 1楼网友:傲气稳了全场
  • 2021-11-28 00:33
//假设sp文件夹在 D 盘
import java.io.File;
public class FileDemo{

public static void main(String[] args){
File f=new File("D:/sp/1.txt");
if(f.exists()){
System.out.println("该文件存在!");
}
else{
System.out.println("该文件不存在!可以复制!");
//下面可以写复制代码语句

}

}

}
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯