今天问了一个察看一个目录下文件的问题,在大家的帮助下已经解决了。结帖散分了。
再问一个简单问题:一个文件夹下面有几个文件
file1.txt
file2.txt
file3.txt
file4.txt
。
如何用java程序把这些文件移动到另外一个目录?
谢谢!
再问一个简单问题:一个文件夹下面有几个文件
file1.txt
file2.txt
file3.txt
file4.txt
。
如何用java程序把这些文件移动到另外一个目录?
谢谢!
然后输出file1.txt到另外的目录(如果是复制就保留原文件,剪切则删除)
再就是循环直到文件夹中没有文件(用哨兵来控制这个循环,以免中途取消的情况)
举个例子,将c:/a/a.txt移动到c:/b中
import java.io.File;public class FileMove {
public static void main(String [] arg0){
File fileOne = new File("c:/a/a.txt");
File fileTwo = new File("c:/a/b.txt");
fileOne.renameTo(fileTwo);
}
}
//create dir b
File fileOne = new File("c:/a/a.txt");
File fileTwo = new File("c:/b/a.txt");
fileOne.renameTo(fileTwo);
}
package test0204;import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;public class FileUtil {
/*
* 复制文件夹
*/
public static void removeDir(File dir,File dir2) throws Exception{
if(dir.isDirectory())
{
File innerDir = new File(dir2.getPath()+File.separator+dir.getName());
innerDir.mkdirs();
File[] fileArray = dir.listFiles();
for(int i=0;i<fileArray.length;i++){
if(fileArray[i].isDirectory()){
removeDir(fileArray[i],innerDir);
}
else
copyFile(fileArray[i],new File(innerDir.getPath()+File.separator+fileArray[i].getName()));
}
}
}
public static void copyFile(File file,File file2) throws Exception{
FileInputStream fis = new FileInputStream(file);
FileOutputStream fos = new FileOutputStream(file2);
byte[] b = new byte[1024];
int len;
while((len=fis.read(b, 0, b.length))!=-1){
fos.write(b, 0, len);
}
fos.close();
fis.close();
}
public static void main(String[] args) throws Exception {
removeDir(new File("D:/javaFile/fdsaf"),new File("D:/javaFile/java"));
System.out.println("ok");
}
}
i will try it ,thanks
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream; public class FileUtil {
/*
* 复制文件夹
*/
public static void removeDir(File dir,File dir2) throws Exception{
if(dir.isDirectory())
{
File innerDir = new File(dir2.getPath()+File.separator+dir.getName());
innerDir.mkdirs();
File[] fileArray = dir.listFiles();
for(int i=0;i <fileArray.length;i++){
if(fileArray[i].isDirectory()){
removeDir(fileArray[i],innerDir);
}
else
copyFile(fileArray[i],new File(innerDir.getPath()+File.separator+fileArray[i].getName()));
} } } public static void copyFile(File file,File file2) throws Exception{
FileInputStream fis = new FileInputStream(file);
FileOutputStream fos = new FileOutputStream(file2);
byte[] b = new byte[1024];
int len;
while((len=fis.read(b, 0, b.length))!=-1){
fos.write(b, 0, len);
}
fos.close();
fis.close();
}
public static void main(String[] args) throws Exception {
removeDir(new File("D:/javaFile/fdsaf"),new File("D:/javaFile/java"));
System.out.println("ok");
}
}
嘿嘿 我也看这个
//create dir b
File fileOne = new File("c:/a/a.txt");
File fileTwo = new File("c:/b/a.txt");
fileOne.renameTo(fileTwo);
}
当然可以