package myCopyDirectory;
import java.io.*;
import java.nio.channels.FileChannel;
SimpleDateFormat;
import java.util.Date;
import java.util.Scanner;
public class CopyDirectory {
   
    static int numFileDir = 0; 
    static int numFile = 0;
    static long sizeDir = 0;       
   
    public  void initNum()
    {
        numFileDir = 0;
        numFile = 0;
        sizeDir = 0;
    }
   
    public  void getInfoOfCopyFile(String path)
    {
        File file = new File(path);
        if (ists())
        {
            SimpleDateFormat fmt = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
            Date date;
            if (file.isDirectory())
            {
                File[] listFile = file.listFiles();
                for(int i=0;i<listFile.length;i++)
                {
                    date = new Date(listFile[i].lastModified());
                    System.out.print(fmt.format(date) + "    ");
                    if(listFile[i].isDirectory())
                    {
                        System.out.print("文件夹        ");
                        System.out.println(listFile[i].toString());
                        numFileDir++;
                        getInfoOfCopyFile(listFile[i].toString());
                    }
                    else
                    {
                        System.out.print("文    件        ");
                        System.out.println(listFile[i].toString() + "(大小:" + listFile[i].length() + " Byte)");
                        numFile++;
                        sizeDir += listFile[i].length();
                    }
                }
            }
            else
            {
                date=new Date(file.lastModified());
                System.out.print(fmt.format(date)+"      ");
                System.out.print("文件        ");
                System.out.String() + "(大小:"+file.length() + " Byte)");
                numFile++;
                sizeDir += file.length();
            }
        }
        else
        {
            System.out.println("文件或文件夹不存在!");
        }
    }
   
    public  void copyFiles(String sourcePath,String desPath) throws Exception
    {
        File fromFile = new File(sourcePath);
        ists())
        {
            File desFile = new File(desPath);
            ists())
            {
                System.out.println("目录" + desPath + "目录已经存在,复制文件操作失败!");
            }
            else
            {
                if(fromFile.isFile())
                {
                    File newDesFile = new File(desPath);
                    ateNewFile();
                    FileInputStream inFile = new FileInputStream(fromFile);
                    FileOutputStream outFile = new FileOutputStream(newDesFile);
                    FileChannel inChannel = Channel();
                    FileChannel outChannel = Channel();
                    long bytesWritten = 0;
                    long byteCount = inChannel.size();
                    while(bytesWritten<byteCount)
                    {
                        bytesWritten += ansferTo(bytesWritten, byteCount - bytesWritten, outChannel);
                    }
                //    System.out.println("文件" + Name() + "已经成功复制到" + AbsolutePath() + ".");
                    inFile.close();
                    outFile.close();
                }
                else
                {
                    if(desFile.mkdir())
                    {
            //            System.out.println("目录" + AbsolutePath() + "创建成功!");
                        File [] info = fromFile.listFiles();
                            for(int i=0;i<info.length;i++)
                            {
                                String desPathTemp = desPath+"\\"+info[i].getName();
                                copyFiles(info[i].getAbsolutePath(),desPathTemp);
                            }
                    }
                    else
                    {
                        System.out.println("目录" + AbsolutePath() + "创建失败!");
                    }               
                }           
            }
        }
        else
        {
            System.out.println("目录" + sourcePath + "不存在,文件复制操作失败!");
        }
    }
   
    public void deleteFile (String sourcePath) throws Exception
    {
        File deleFile = new File(sourcePath);
        if(!ists()){
            System.out.println("路径不正确.");
        }
        else {
            String fileName[] = deleFile.list();
            for (int i=0;i<fileName.length;i++){
                File f1 = new File(sourcePath,fileName[i]);
                if (f1.isFile() || f1.length()==0){
                    f1.delete();
                }
                else if (f1.isDirectory())
                {
                //    AbsolutePath());
                    AbsolutePath());
                }
                deleFile.delete();
            }   
        }
    }
    public void meun(CopyDirectory copy) throws InterruptedException,IOException,Exception
    {       
        int readSelect;
        int choice = 1;   
        String str;
        String sourcePath = null;
        String desPath = null;
        Scanner read = new Scanner(System.in);
        BufferedReader input = new BufferedReader(new InputStreamReader(System.in));
        System.out.println("欢迎使用文件删除和文件复制系统");
        while (choice != 0) {
            System.out.println("请选择您所需要的功能:");
            System.out.println("1  文件删除");
            System.out.println("2  文件复制");
            System.out.print("请选择:");
            readSelect = Int();
            switch(readSelect){
java创建文件            case 1:{
                System.out.println("请输入目录:");
                sourcePath = adLine();
                System.out.println("源目录的信息如下:");
                    System.out.println("最后修改时间                                                                    属性                    名称");
                    InfoOfCopyFile(sourcePath);
                    System.out.println();
                    System.out.println("共有" + CopyDirectory.numFileDir + "个文件夹," + CopyDirectory.numFile + "文件,总大小为" + CopyDirectory.sizeDir + "Byte。");
                    System.out.println("正在删除,请稍等...");
                    copy.deleteFile(sourcePath);
                    System.out.println("共删除了" + CopyDirectory.numFileDir + "个文件夹," + CopyDirectory.numFile + "文件,总大小为" + CopyDirectory.sizeDir + "Byte。");

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。