import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
public class FolderCopy {
/**
* @param args
*/
/*文件
* param src,des
* return ture 成功。false 失败
*/
public static boolean fileCopy(String src,String des){
srcFile=new File(src);
File desFile=new File(des);
byte[]b=new byte[1024];
String string="";
try {
FileInputStream fis=new FileInputStream(srcFile);
FileOutputStream fos=new FileOutputStream(desFile,false);
while(true){
int i=fis.read(b);
if(i==-1)break;
fos.write(b,0,i);
}
fos.close();
fis.close();
return true;
} catch (Exception e){
e.printStackTrace();
}
return false;
}
/*
* 文件夹
* param src,des
* return ture 成功。false 失败
*
*/
public static boolean folderCopy(String src,String des){
File srcFile=new File(src);
File desFile=new File(des);
File []files=srcFile.listFiles();
boolean flag = false;
if(!desFile.exists())desFile.mkdir();
for(int i=0;i<files.length;i++){
String path=files[i].getAbsolutePath();
if(files[i].isDirectory()){
File newFile=new File("path.replace(src,des)");
if(!newFile.exists())newFile.mkdir();//不存在新建文件夹
folderCopy(path,path.replace(src,des));
}
else
flag=fileCopy(path,path.replace(src,des));//文件复制函数
}
return flag;
}
public static void main(String[] args) {
FolderCopy.folderCopy("d:\\1","C:\\1" );
}
}
希望能够帮助你。
『贰』 java 编写程序,拷贝一个带内容的文件夹。 例如:将c:\program files\java 文件夹拷贝到D盘的根目录下
正好 前两天写了个差不多的。直接贴给你了。
import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
/*
* 用java IO实现:将一个目录下的文件到另一个目录下。
* a) 输入:源目录,目标目录
* b) 输出:文件及目录结构复制成功并打印复制的文件个数
*/
public class FileCopy {
private File file = null;
private String sourceDir = null;
private String signDir = null;
private boolean flag = false;
public static void main(String[] args) {
new FileCopy();
}
public FileCopy() {
inputSourceDir();
File[] files = file.listFiles();
for (File f : files) {
if (f.isFile()) System.out.println(f + "\t这是一个文件。");
else if (f.isDirectory()) System.out.println(f + "\t这是一个目录。");
}
inputSignDir();
File(files);
}
private void inputSourceDir(){
flag = false;
do {
System.out.println("请输入源目录:");
InputStreamReader isr = new InputStreamReader(System.in);
BufferedReader br = new BufferedReader(isr);
try {
sourceDir = br.readLine();
file = new File(sourceDir);
if (file.isDirectory()) {
flag = true;
} else {
flag = false;
}
} catch (IOException e) {
System.out.println("输入错误,请重新输入。");
}
} while (false == flag);
}
private void inputSignDir() {
flag = false;
do {
System.out.println("请输入目标目录:");
InputStreamReader isr = new InputStreamReader(System.in);
BufferedReader br = new BufferedReader(isr);
try {
signDir = br.readLine();
file = new File(signDir);
if (file.isDirectory()) {
flag = true;
} else {
flag = false;
}
} catch (IOException e) {
System.out.println("输入错误,请重新输入。");
}
} while (false == flag);
}
private void File(File[] files) {
System.out.println("拷贝的源文件夹路径:" + sourceDir);
System.out.println("拷贝的目标文件夹路径:" + signDir);
for (File f : files) {
try {
File ok = new File(signDir, f.getName());
if (false == ok.exists()) {
ok.createNewFile();
}
FileInputStream fis = new FileInputStream(f);
byte[] size = new byte[(int) f.length()];
fis.read(size);
FileOutputStream fos = new FileOutputStream(ok);
fos.write(size);
if ((f.getName().equals(ok.getName())) && (f.length() == ok.length())) {
System.out.println(f + "\t文件拷贝成功!");
} else {
System.out.println(f + "\t文件拷贝失败!");
}
fis.close();
fos.close();
} catch (FileNotFoundException e) {
System.out.println("文件(夹)没有找到!");
} catch (IOException e) {
System.out.println("文件读取出错!");
}
}
}
}
『叁』 java如何拷贝一个文件夹内的多个指定的文件到另外一个指定的文件夹下
你好:
请看代码:
/**
*把一个文件夹里的所有文件包括文件夹一并原样拷贝到另一个目录中;
*@authorshuishui
*/
importjava.io.File;
importjava.io.FileInputStream;
importjava.io.FileNotFoundException;
importjava.io.FileOutputStream;
importjava.io.IOException;
importjava.io.InputStream;
importjava.io.OutputStream;
publicclassCopyDir001{
publicstaticFiledirFrom;
publicstaticFiledirTo;
//目标路径创建文件夹
publicvoidlistFileInDir(Filefile){
File[]files=file.listFiles();
for(Filef:files){
Stringtempfrom=f.getAbsolutePath();
Stringtempto=tempfrom.replace(dirFrom.getAbsolutePath(),
dirTo.getAbsolutePath());//后面的路径替换前面的路径名
if(f.isDirectory()){
FiletempFile=newFile(tempto);
tempFile.mkdirs();
listFileInDir(f);
}else{
System.out.println("源文件:"+f.getAbsolutePath());
//
intendindex=tempto.lastIndexOf("\");//找到"/"所在的位置
StringmkdirPath=tempto.substring(0,endindex);
FiletempFile=newFile(mkdirPath);
tempFile.mkdirs();//创建立文件夹
System.out.println("目标点:"+tempto);
(tempfrom,tempto);
}
}
}
/**
*封装好的文件拷贝方法
*/
publicvoid(Stringfrom,Stringto){
try{
InputStreamin=newFileInputStream(from);
OutputStreamout=newFileOutputStream(to);
byte[]buff=newbyte[1024];
intlen=0;
while((len=in.read(buff))!=-1){
out.write(buff,0,len);
}
in.close();
out.close();
}catch(FileNotFoundExceptione){
e.printStackTrace();
}catch(IOExceptione){
e.printStackTrace();
}
}
publicstaticvoidmain(String[]args){
Filefromfile=newFile("e:\shui\test");//源文件夹
Filetofile=newFile("e:\Jying\shui");//目标
CopyDir001=newCopyDir001();
//设置来源去向
.dirFrom=fromfile;
.dirTo=tofile;
.listFileInDir(fromfile);
}
}
『肆』 java如何拷贝文件到另一个目录下
/**
*
复制单个文件
*
@param
oldPath
String
原文件路径
如:c:/fqf.txt
*
@param
newPath
String
复制后路径
如:f:/fqf.txt
*
@return
boolean
*/
public
void
File(String
oldPath,
String
newPath)
{
try
{
int
bytesum
=
0;
int
byteread
=
0;
File
oldfile
=
new
File(oldPath);
if
(oldfile.exists())
{
//文件存在时
InputStream
inStream
=
new
FileInputStream(oldPath);
//读入原文件
FileOutputStream
fs
=
new
FileOutputStream(newPath);
byte[]
buffer
=
new
byte[1444];
int
length;
while
(
(byteread
=
inStream.read(buffer))
!=
-1)
{
bytesum
+=
byteread;
//字节数
文件大小
System.out.println(bytesum);
fs.write(buffer,
0,
byteread);
}
inStream.close();
}
}
catch
(Exception
e)
{
System.out.println("复制单个文件操作出错");
e.printStackTrace();
}
}
/**
*
复制整个文件夹内容
*
@param
oldPath
String
原文件路径
如:c:/fqf
*
@param
newPath
String
复制后路径
如:f:/fqf/ff
*
@return
boolean
*/
public
void
Folder(String
oldPath,
String
newPath)
{
try
{
(new
File(newPath)).mkdirs();
//如果文件夹不存在
则建立新文件夹
File
a=new
File(oldPath);
String[]
file=a.list();
File
temp=null;
for
(int
i
=
0;
i
<
file.length;
i++)
{
if(oldPath.endsWith(File.separator)){
temp=new
File(oldPath+file[i]);
}
else{
temp=new
File(oldPath+File.separator+file[i]);
}
if(temp.isFile()){
FileInputStream
input
=
new
FileInputStream(temp);
FileOutputStream
output
=
new
FileOutputStream(newPath
+
"/"
+
(temp.getName()).toString());
byte[]
b
=
new
byte[1024
*
5];
int
len;
while
(
(len
=
input.read(b))
!=
-1)
{
output.write(b,
0,
len);
}
output.flush();
output.close();
input.close();
}
if(temp.isDirectory()){//如果是子文件夹
Folder(oldPath+"/"+file[i],newPath+"/"+file[i]);
}
}
}
catch
(Exception
e)
{
System.out.println("复制整个文件夹内容操作出错");
e.printStackTrace();
}
}
『伍』 怎么把目录下的所有文件复制到另外目录下java
java将一个文件夹下的所有文件复制到另一个文件夹下
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
public class self {
public void IOCopy(String path,String path1){
File file = new File(path);
File file1 = new File(path1);
if(!file.exists()){
System.out.println(file.getName()+"文件不存在");
}else{
System.out.println("存在");
}
byte[] b = new byte[(int) file.length()];
if(file.isFile()){
try {
FileInputStream is= new FileInputStream(file);
FileOutputStream ps= new FileOutputStream(file1);
is.read(b);
ps.write(b);
} catch (Exception e) {
e.printStackTrace();
}
}else if(file.isDirectory()){
if(!file.exists())
file.mkdir();
String[] list = file.list();
for(int i=0;i<list.length;i++){
this.IOCopy(path+"/"+list[i], path1+"/"+list[i]);
}
}
}
public static void main(String args[]){
new self().IOCopy("D:\\device","D:\\TDDOWNLOAD");
}
}
『陆』 怎样用Java复制文件到指定目录 在线等,急!!!!
java的来File类对文件进行操作不涉及源编码问题,只是流对象的处理而已
首先用File类定位到该文件夹,遍历dll文件为一个数组存储起来
然后循环遍历这四个文件 使用outputstream(可以加缓冲)写入你的目标文件夹
代码量不是很大 只是逻辑必须清晰
而且如果不是必须用java操作 我觉得写批处理比写java简单的多
『柒』 java 如何拷贝整个目录,类似x
有两种方法可以使用:
1、我们可以使用java的File类,使用递归算法遍历文件夹及其所有层的子文件夹,这种写法非常繁琐且效率不高,不推荐使用。
2、直接使用Windows的x命令
示例代码
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class Main {
public static void main( String[] args ) throws IOException
{
/*在dos窗口:x C:\源文件 D:\源文件\/S/E*/
/*字符所需的格式:x C:\\源文件 D:\\源文件\\/S/E*/
System.out.println( "请输入源文件的地址栏路径:" );
BufferedReader br = new BufferedReader( new InputStreamReader( System.in ) );
String input = br.readLine();
/*将地址中的单斜杠变为双斜杠*/
String from = input.replaceAll( "\\\\", "\\\\\\\\" );
/*获取文件名*/
String name_file = from.substring( from.lastIndexOf( "\\" ) + 1, from.length() );
/*把目标拷贝到D盘根目录*/
String to = "D:\\" + name_file + "\\/S/E";
/*拼装命令*/
String cmd = "cmd.exe /C x " + from + " " + to;
/*执行命令*/
java.lang.Runtime.getRuntime().exec( cmd );
System.out.println( "文件拷贝完毕。" );
System.out.println( "文件已经拷贝到:D:\\" + name_file );
}
}
『捌』 怎样用Java复制一个文件到指定目录
import java.io.*;
public class CopyFile {
public static void main(String[] args) {
try{
FileInputStream input=new FileInputStream("f:\\downloads\\kon.jpg");//可替换为任抄何路径何和文件名
FileOutputStream output=new FileOutputStream("f:\\kon.jpg");//可替换为任何路径何和文件名
int in=input.read();
while(in!=-1){
output.write(in);
in=input.read();
}
}catch (IOException e){
System.out.println(e.toString());
}
}
}
『玖』 java如何拷贝文件到另一个目录下
下面列举出4种方式:
1、使用FileStreams复制
这是最经典的方式将一个文版件的内容复制到另一个文件中。 使用权FileInputStream读取文件A的字节,使用FileOutputStream写入到文件B。正如你所看到的我们执行几个读和写操作try的数据,所以这应该是一个低效率的,下一个方法我们将看到新的方式。 这是第一个方法的代码: