我的程序是这样的用io来实现一个文件夹的拷贝。
import java.io.*;
public class CopyFile {
public static void main(String[] args)
{
copyFile("D:\\ccc","D:\\乱七八糟");
}
public static void copyFile(String sourceFilePath , String targetFilePath)
{
File sourceFile = new File(sourceFilePath);
File[] sourceFiles = null;
if(sourceFile.isDirectory()){
targetFilePath +="\\"+sourceFile.getName(); //这段代码什么意思 怎么理解+=“\\”
File targetFile = new File(targetFilePath);
targetFile.mkdirs();
sourceFiles = sourceFile.listFiles();
}else if(sourceFile.isFile()){
sourceFiles = new File[]{sourceFile};
}
for(int i=0;i<sourceFiles.length;i++)
{
if(sourceFiles[i].isDirectory())
{
String newSourceFilePath= sourceFilePath + "\\"+sourceFiles[i].getName();
copyFile(newSourceFilePath,targetFilePath);
}
else
{
try {
FileInputStream fis = new FileInputStream(sourceFiles[i]);
BufferedInputStream bufi=new BufferedInputStream(fis);
FileOutputStream fos = new FileOutputStream(targetFilePath+"\\"+sourceFiles[i].getName());
BufferedOutputStream bufo=new BufferedOutputStream(fos);
byte[] by=new byte[1024];
while(bufi.read(by)!=-1)
{
bufo.write(by,0,by.length);
}
bufi.close();
bufo.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
}
import java.io.*;
public class CopyFile {
public static void main(String[] args)
{
copyFile("D:\\ccc","D:\\乱七八糟");
}
public static void copyFile(String sourceFilePath , String targetFilePath)
{
File sourceFile = new File(sourceFilePath);
File[] sourceFiles = null;
if(sourceFile.isDirectory()){
targetFilePath +="\\"+sourceFile.getName(); //这段代码什么意思 怎么理解+=“\\”
File targetFile = new File(targetFilePath);
targetFile.mkdirs();
sourceFiles = sourceFile.listFiles();
}else if(sourceFile.isFile()){
sourceFiles = new File[]{sourceFile};
}
for(int i=0;i<sourceFiles.length;i++)
{
if(sourceFiles[i].isDirectory())
{
String newSourceFilePath= sourceFilePath + "\\"+sourceFiles[i].getName();
copyFile(newSourceFilePath,targetFilePath);
}
else
{
try {
FileInputStream fis = new FileInputStream(sourceFiles[i]);
BufferedInputStream bufi=new BufferedInputStream(fis);
FileOutputStream fos = new FileOutputStream(targetFilePath+"\\"+sourceFiles[i].getName());
BufferedOutputStream bufo=new BufferedOutputStream(fos);
byte[] by=new byte[1024];
while(bufi.read(by)!=-1)
{
bufo.write(by,0,by.length);
}
bufi.close();
bufo.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
}
targetFilePath +="\\"+sourceFile.getName(); //所以这里先得到D:\\乱七八糟\\ccc字符串
File targetFile = new File(targetFilePath); //再以这个字符串为参数生成一个File对象
targetFile.mkdirs(); //然后创建文件夹
sourceFiles = sourceFile.listFiles();
a += 5; //相当于 a = a + 5;
所以
targetFilePath +="\\"+sourceFile.getName();
相当于
targetFilePath = targetFilePath + "\\"+sourceFile.getName();
qybao is so nice