Как определить адрес вывода файла при перемещении его из переменной в Java? - PullRequest
0 голосов
/ 30 января 2019

Я создаю программу, которая, я надеюсь, организует мой рабочий стол, потому что я ужасен в этом.

Я только что узнал, как создать программу, которая будет перемещать определенный файл из одного места в другое, а также перечислять все файлы в определенном каталоге, чтобы я мог определить, какие файлы я хочу переместить.

Проблема в том, что перемещаемый файл должен быть известен уже в том смысле, что вы должны указать имя и расширение файла.Я хочу сделать так, чтобы программа сканировала каталог, представляла его пользователю, спрашивала, что он хочет отсортировать, затем программа ищет все файлы, которые имеют отношение к тому, что пользователь хочет отсортировать, с помощью ключевого слова изатем перемещается в соответствующую папку.

Я попытался создать переменную, содержащую имя файла, и добавить ее в строку кода, которая не работала.

    String fileMove = null;

    File folder = new File("/Users/james/Desktop/Desktop2");
    File[] listOfFiles = folder.listFiles();

    System.out.println("The files currently in this directory are:");

    for (int i = 0; i <listOfFiles.length; i++) {

        System.out.println(listOfFiles[i].getName());


    }
    System.out.println("");
    System.out.println("What files do you want to sort?");

    String userResponse = userInput.nextLine();

    if (userResponse.equals("English")) {


        for (int i = 0; i <listOfFiles.length; i++) {

            if(listOfFiles[i].getName().contains("English")) {

                fileMove = listOfFiles[i].getName();
            }


        }

        File sourceFile = new File("/Users/james/Desktop/Desktop2/ " + fileMove);

        File destinationFile = new File("/Users/james/Desktop/Desktop2/English " + fileMove);

        System.out.println("Operation complete");

Предполагалось, что эта программа: перечислит файлы в каталоге, спросит пользователя, какие файлы должны быть отсортированы, отсортирует файлы.

Программа фактически: перечисляет файлы в каталоге, спрашивает пользователя, какие файлыдолжны быть отсортированы, n / a

1 Ответ

0 голосов
/ 30 января 2019

Я понял, что забыл важную часть кода: facepalm:

Я тоже немного добавил к нему, но он работает сейчас ....

    Scanner userInput = new Scanner(System.in);

    String[] fileMove = new String[10];

    File folder = new File("/Users/james/Desktop/Desktop2");
    File[] listOfFiles = folder.listFiles();

    System.out.println("The files currently in this directory are:");

    for (int i = 0; i <listOfFiles.length; i++) {

        System.out.println(listOfFiles[i].getName());


    }
    System.out.println("");
    System.out.println("What files do you want to sort?");

    String userResponse = userInput.nextLine();

    if (userResponse.equals("English")) {


        for (int i = 0; i <listOfFiles.length; i++) {

            if(listOfFiles[i].getName().contains("English")) {

                fileMove[i] = listOfFiles[i].getName();


            System.out.println(fileMove[i]);

            System.out.println("/Users/james/Desktop/Desktop2/" + fileMove[i]);

            File sourceFile = new File("/Users/james/Desktop/Desktop2/" + fileMove[i]);

            System.out.println("/Users/james/Desktop/Desktop2/Eng/" + fileMove[i]);

            File destinationFile = new File("/Users/james/Desktop/Desktop2/Eng/" + fileMove[i]);

            try {
                Files.copy(sourceFile.toPath(), destinationFile.toPath(), StandardCopyOption.REPLACE_EXISTING);

            } catch (IOException e) {

                e.printStackTrace();
            }



            System.out.println("Operation complete");

            }

        }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...