请让我发表谢谢

好的,下面是一个基于Java文件管理和I/O框架的命令行文件管理工具的实现,包括创建文件夹、删除文件夹、创建文件、删除文件、文本文件的写入和读取。

首先,我们需要定义一个FileManagement类,用于管理文件和文件夹。其中,我们使用Java的File类来表示文件和文件夹,使用Java的IO框架来进行文件的读写操作。

```java
import java.io.*;
import java.util.Date;

public class FileManagement {
    private String currentPath;

    public FileManagement(String path) {
        this.currentPath = path;
    }

    public void createFolder(String folderName) {
        File folder = new File(currentPath + "\\" + folderName);
        if (!folder.exists()) {
            folder.mkdirs();
            System.out.println("Folder created successfully.");
        } else {
            System.out.println("Folder already exists.");
        }
    }

    public void deleteFolder(String folderName) {
        File folder = new File(currentPath + "\\" + folderName);
        if (folder.exists()) {
            deleteFolderRecursively(folder);
            System.out.println("Folder deleted successfully.");
        } else {
            System.out.println("Folder does not exist.");
        }
    }

    private void deleteFolderRecursively(File file) {
        if (file.isDirectory()) {
            for (File subFile : file.listFiles()) {
                deleteFolderRecursively(subFile);
            }
        }
        file.delete();
    }

    public void createFile(String fileName) {
        File file = new File(currentPath + "\\" + fileName);
        try {
            if (!file.exists()) {
                file.createNewFile();
                System.out.println("File created successfully.");
            } else {
                System.out.println("File already exists.");
            }
        } catch (IOException e) {
            System.out.println("Failed to create file.");
            e.printStackTrace();
        }
    }

    public void deleteFile(String fileName) {
        File file = new File(currentPath + "\\" + fileName);
        if (file.exists()) {
            file.delete();
            System.out.println("File deleted successfully.");
        } else {
            System.out.println("File does not exist.");
        }
    }

    public void writeTextToFile(String fileName, String content) {
        File file = new File(currentPath + "\\" + fileName);
        try {
            FileWriter writer = new FileWriter(file);
            writer.write(content);
            writer.close();
            System.out.println("Text written to file successfully.");
        } catch (IOException e) {
            System.out.println("Failed to write text to file.");
            e.printStackTrace();
        }
    }

    public void readTextFromFile(String fileName) {
        File file = new File(currentPath + "\\" + fileName);
        if (file.exists()) {
            try {
                FileReader reader = new FileReader(file);
                BufferedReader bufferedReader = new BufferedReader(reader);
                String line;
                while ((line = bufferedReader.readLine()) != null) {
                    System.out.println(line);
                }
                bufferedReader.close();
                reader.close();
            } catch (IOException e) {
                System.out.println("Failed to read text from file.");
                e.printStackTrace();
            }
        } else {
            System.out.println("File does not exist.");
        }
    }

    public void copyImageFile(String fileName, String destinationPath) {
        File file = new File(currentPath + "\\" + fileName);
        if (file.exists()) {
            File destinationFile = new File(destinationPath + "\\" + fileName);
            try {
                FileInputStream inputStream = new FileInputStream(file);
                FileOutputStream outputStream = new FileOutputStream(destinationFile);
                byte[] buffer = new byte[1024];
                int length;
                while ((length = inputStream.read(buffer)) > 0) {
                    outputStream.write(buffer, 0, length);
                }
                inputStream.close();
                outputStream.close();
                System.out.println("Image file copied successfully.");
            } catch (IOException e) {
                System.out.println("Failed to copy image file.");
                e.printStackTrace();
            }
        } else {
            System.out.println("File does not exist.");
        }
    }

    public void changeFilePath(String fileName, String newPath) {
        File file = new File(currentPath + "\\" + fileName);
        if (file.exists()) {
            File newFile = new File(newPath + "\\" + fileName);
            if (newFile.exists()) {
                System.out.println("File with the same name already exists in the new path.");
            } else {
                file.renameTo(newFile);
                System.out.println("File path changed successfully.");
            }
        } else {
            System.out.println("File does not exist.");
        }
    }

    public void showFolderContents() {
        File folder = new File(currentPath);
        if (folder.exists() && folder.isDirectory()) {
            File[] files = folder.listFiles();
            System.out.println("Name\t\t\t\t\tModified Date\t\t\tSize");
            for (File file : files) {
                String name = file.getName();
                Date modifiedDate = new Date(file.lastModified());
                long size = file.length();
                System.out.println(name + "\t\t\t" + modifiedDate + "\t\t" + size + " bytes");
            }
        } else {
            System.out.println("Folder does not exist.");
        }
    }

    public void setCurrentPath(String path) {
        this.currentPath = path;
    }

    public String getCurrentPath() {
        return currentPath;
    }
}
```

在这个类中,我们定义了一些基本的文件和文件夹操作函数,包括创建文件夹、删除文件夹、创建文件、删除文件、文本文件的写入和读取。另外,我们还实现了复制图片文件到指定路径下、更改文件的路径和展示文件夹内容等功能。

接下来,我们在主函数中创建一个FileManagement对象,并使用命令行参数来执行相应的操作。具体代码如下:

```java
public class Main {
    public static void main(String[] args) {
        FileManagement fileManagement = new FileManagement("C:\\Users\\test");
        if (args.length == 0) {
            System.out.println("No command specified.");
        } else {
            String command = args[0];
            switch (command) {
                case "createFolder":
                    if (args.length < 2) {
                        System.out.println("Folder name not specified.");
                    } else {
                        String folderName = args[1];
                        fileManagement.createFolder(folderName);
                    }
                    break;
                case "deleteFolder":
                    if (args.length < 2) {
                        System.out.println("Folder name not specified.");
                    } else {
                        String folderName = args[1];
                        fileManagement.deleteFolder(folderName);
                    }
                    break;
                case "createFile":
                    if (args.length < 2) {
                        System.out.println("File name not specified.");
                    } else {
                        String fileName = args[1];
                        fileManagement.createFile(fileName);
                    }
                    break;
                case "deleteFile":
                    if (args.length < 2) {
                        System.out.println("File name not specified.");
                    } else {
                        String fileName = args[1];
                        fileManagement.deleteFile(fileName);
                    }
                    break;
                case "writeTextToFile":
                    if (args.length < 3) {
                        System.out.println("File name or text content not specified.");
                    } else {
                        String fileName = args[1];
                        String content = args[2];
                        fileManagement.writeTextToFile(fileName, content);
                    }
                    break;
                case "readTextFromFile":
                    if (args.length < 2) {
                        System.out.println("File name not specified.");
                    } else {
                        String fileName = args[1];
                        fileManagement.readTextFromFile(fileName);
                    }
                    break;
                case "copyImageFile":
                    if (args.length < 3) {
                        System.out.println("File name or destination path not specified.");
                    } else {
                        String fileName = args[1];
                        String destinationPath = args[2];
                        fileManagement.copyImageFile(fileName, destinationPath);
                    }
                    break;
                case "changeFilePath":
                    if (args.length < 3) {
                        System.out.println("File name or new path not specified.");
                    } else {
                        String fileName = args[1];
                        String newPath = args[2];
                        fileManagement.changeFilePath(fileName, newPath);
                    }
                    break;
                case "showFolderContents":
                    fileManagement.showFolderContents();
                    break;
                default:
                    System.out.println("Invalid command.");
                    break;
            }
        }
    }
}
```

在这个主函数中,我们首先创建了一个FileManagement对象,并将其初始化为指定的文件夹路径。然后,我们根据命令行参数来执行相应的操作,包括创建文件夹、删除文件夹、创建文件、删除文件、文本文件的写入和读取、复制图片文件到指定路径下、更改文件的路径和展示文件夹内容等功能。

例如,我们可以在命令行中执行以下命令来创建一个名为"testFolder"的文件夹:

```
java Main createFolder testFolder
```

执行以下命令来创建一个名为"testFile.txt"的文本文件,并将"Hello, world!"写入文件中:

```
java Main createFile testFile.txt
java Main writeTextToFile testFile.txt "Hello, world!"
```

执行以下命令来读取刚刚创建的文本文件:

```
java Main readTextFromFile testFile.txt
```

执行以下命令来展示当前文件夹下的所有子文件夹和文件:

```
java Main showFolderContents
```

以上就是一个基于Java文件管理和I/O框架的命令行文件管理工具的实现。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值