文件结构的复制

不复制内容
package file;
import java.io.*;
public class CopyFile
{
	public static void main(String[] args)
	{
		File sourceFile = new File("D:/作业");
		File targetFile = new File("F:/");
		copy(sourceFile, targetFile);

	}
	public static void copy(File sourceFile, File targetFile)
	{
		File tarpath = new File(targetFile, sourceFile.getName());
		if (sourceFile.isDirectory())//如果源文件是一个目录
		{
			tarpath.mkdir();//创建此目录到目标路径
			System.out.println(tarpath.getName()+"赋值完成");
			File[] dir = sourceFile.listFiles();//获取源文件下属的子文件
			for(File f:dir)
			{
				copy(f,tarpath);
			}
		} 
	}
}
 

复制内容

package file;
import java.io.*;
public class CopyFile
{
	public static void main(String[] args) throws IOException
	{
		File sourceFile = new File("D:/作业");
		File targetFile = new File("F:/");
		copy(sourceFile, targetFile);

	}
	public static void copy(File sourceFile, File targetFile) throws IOException
	{
		if(sourceFile.exists()&&targetFile.exists())
		{
			File tarpath = new File(targetFile, sourceFile.getName());//创建新文件
			if (sourceFile.isDirectory())//如果源文件是一个目录
			{
				tarpath.mkdir();//创建新目录
				System.out.println("目录:"+tarpath.getName()+"复制完成");
				File[] dir = sourceFile.listFiles();//获取源文件下属的子文件
				for(File f:dir)
				{
					copy(f,tarpath);
				}
			} 
			else
			{
				//tarpath.createNewFile();//创建新文件
				FileInputStream is=new FileInputStream(sourceFile);
				FileOutputStream os=new FileOutputStream(tarpath);
				BufferedInputStream bis=new BufferedInputStream(is);
				BufferedOutputStream bos=new BufferedOutputStream(os);
				int length=0;
				byte []bytes=new byte[4096];
				while((length=bis.read(bytes))!=-1)
				{
					bos.write(bytes, 0, length);
				}
				if(bis!=null)
				{
					bis.close();
				}
				if(bos!=null)
				{
					bos.close();
				}
				System.out.println("文件:"+tarpath.getName()+"复制完成");
			}
		}
		else
		{
			System.out.println("源文件不存在");
		}
	}
}

 

你可能感兴趣的:(OS,F#)