Форум программистов, компьютерный форум, киберфорум
Java SE (J2SE)
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.70/30: Рейтинг темы: голосов - 30, средняя оценка - 4.70
 Аватар для SAZl
2 / 9 / 0
Регистрация: 12.10.2011
Сообщений: 173

Переименование файлов и архивация

11.11.2013, 18:21. Показов 5795. Ответов 23
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравсвуйте.
Подскажите кто знает. Как написать это? Только начал изучать java! Может у кого-то есть подобный код? Посоветуйте с чего начать.

1) Написать программу, которая переименовывает все файлы с расширением .txt из заданной директории, давая им имена 1.txt, 2.txt, 3.txt и так далее по порядку. Вывести старые имена файлов на экран и в текстовый файл.

2) В Java для чтения и записи zip-архивов применяются классы ZipInputStream и ZipInputStream. Используя эти классы, напишите программу, которая позволяет архивировать и распаковывать набор файлов или директорий. Входные данные программа должна получать в виде параметров командной строки.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
11.11.2013, 18:21
Ответы с готовыми решениями:

Переименование и архивация файлов по части имени
Здравствуйте! Помогите со следующей задачей. Есть папка в которой находятся множество файлов с различными расширениями (в основном JPG,...

Переименование PDF-файлов в имена, берущиеся из содержимого этих файлов
Всем доброго времени суток!:) Подскажите, пожалуйста, как переименовать файл с расширением pdf, взяв сам текст для наименования файла из...

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

23
 Аватар для -LM-
57 / 57 / 12
Регистрация: 11.02.2013
Сообщений: 132
11.11.2013, 19:31
по 1-му

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
 
public class Main {
 
    public static void main(String[] args) {
        try {
            rename(new File("путь к директории"), new FileWriter("тут указываем путь и название файла куда выгрузить результат"));
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
 
    public static void rename(File dir, FileWriter fw) throws IOException {
        StringBuilder sb = new StringBuilder();
        int name = 1;
        try {
            for (File file : dir.listFiles()) {
                if (file.getName().matches(".*\\.txt")) {
                    System.out.println("old name - " + file.getName());
                    sb.append(file.getName()).append(System.getProperty("line.separator"));
                    file.renameTo(new File(String.valueOf(name) + ".txt"));
                    name++;
                }
            }
            fw.write(sb.toString());
        } finally {
            fw.close();
        }
    }
}
только не учитывается момент если в указаной директории есть еще папки в которых есть текст. файлы

по 2-му, не знаком с ZipInputStream и ZipInputStream .
1
 Аватар для SAZl
2 / 9 / 0
Регистрация: 12.10.2011
Сообщений: 173
11.11.2013, 20:44  [ТС]
Ошибка на строке:
Java
1
 rename(new File("C:\b"), new FileWriter("C:\r.txt"));
java.io.FileNotFoundException: C:
.txt (Синтаксическая ошибка в имени файла, имени папки или метке тома)
at java.io.FileOutputStream.open(Native Method)
at java.io.FileOutputStream.<init>(Unknown Source)
at java.io.FileOutputStream.<init>(Unknown Source)
at java.io.FileWriter.<init>(Unknown Source)
at files.main(files.java:9)

Перебрал несколько вариантов путей и не получилось запустить. Каким должен быть правильный путь.

Насчет 2-го задания, там опечатка не 2 раза ZipInputStream, а ZipInputStream и ZipOutputStream
0
169 / 66 / 15
Регистрация: 24.03.2013
Сообщений: 467
Записей в блоге: 1
11.11.2013, 22:03
По пункту 2. Из моего прошлого задания, просто пример.

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
/**
     * This method save a list of tasks to file in zip format
     * 
     * @param path
     *            to the file
     * @param tasks
     *            a list of task for saving
     * @return count of saved task
     * @throws IOException
     */
    public static int saveToZipFile(String path, List<Task> tasks)
            throws IOException {
        ZipOutputStream zipStream = new ZipOutputStream(new FileOutputStream(
                path));
        String pathToTextFile = String.valueOf(path.toCharArray(), 0,
                path.length() - 3);
 
        pathToTextFile += "forZip.txt";
        int count = saveToTextFile(pathToTextFile, tasks);
        File file = new File(pathToTextFile);
 
        ZipEntry entry = new ZipEntry(pathToTextFile);
        zipStream.putNextEntry(entry);
        byte[] bytes = getBytesFromFile(file);
        zipStream.write(bytes);
        zipStream.flush();
 
        file.delete();
 
        zipStream.close();
        return count;
    }
Load Zip file
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
/**
     * This method parse a zip file, and added a find tasks in file to the
     * collection.
     * 
     * @param path
     *            - string path to the xml-file
     * @param tasks
     *            - reference to collection of the tasks for added.
     * @return number of added tasks.
     * @throws IOException
     * @throws ParseException
     */
    public static int loadFromZipFile(String path, List<Task> tasks)
            throws IOException, ParseException {
        ZipInputStream zipStream = new ZipInputStream(new FileInputStream(path));
        ZipEntry entry = zipStream.getNextEntry();
 
        FileOutputStream fout = new FileOutputStream(entry.getName());
        for (int c = zipStream.read(); c != -1; c = zipStream.read()) {
            fout.write(c);
        }
        zipStream.closeEntry();
 
        fout.close();
        zipStream.close();
 
        int count = loadFromTextFile(entry.getName(), tasks);
        File file = new File(entry.getName());
        file.delete();
 
        return count;
    }
Code
1
2
Ошибка на строке:Код Java(TM) 2 Platform Standard Edition 5.0
1    rename(new File("C:\b"), new FileWriter("C:\r.txt"));
Возможно надо вот так:
Java
1
new File("C:" + File.seporator + [fileName]) ;

Не по теме:


За корявый инглиш не пинать:)

0
 Аватар для SAZl
2 / 9 / 0
Регистрация: 12.10.2011
Сообщений: 173
11.11.2013, 22:32  [ТС]
Java
1
new File("C:" + File.seporator + [fileName]) ;
Там где написан 2-й плюс выскочила ошибка Syntax error on token "+", Expression expected after this token
[fileName] - имеется в виду тип любое_имя_файла.txt?

Добавлено через 14 минут
Almaz_1993, Можете подсказать на какой странице находится описание про ZipInputStream, хотел почитать, а там аж 51 страница. Я конечно могу поискать, но было бы здорово если подсказали страницу. Поиск в теме не выдал совпадений.
0
169 / 66 / 15
Регистрация: 24.03.2013
Сообщений: 467
Записей в блоге: 1
11.11.2013, 22:46
Цитата Сообщение от SAZl Посмотреть сообщение
[fileName] - имеется в виду тип любое_имя_файла.txt?
Да
Цитата Сообщение от SAZl Посмотреть сообщение
на какой странице находится описание про ZipInputStream, хотел почитать, а там аж 51 страница.
Вы про какой источник?
0
 Аватар для SAZl
2 / 9 / 0
Регистрация: 12.10.2011
Сообщений: 173
11.11.2013, 22:57  [ТС]
Вот этот
0
 Аватар для -LM-
57 / 57 / 12
Регистрация: 11.02.2013
Сообщений: 132
11.11.2013, 23:08
пробуй так
Java
1
rename(new File("C:/b"), new FileWriter("C:/r.txt"));
или так
Java
1
rename(new File("C:\\b"), new FileWriter("C:\\r.txt"));
1
 Аватар для SAZl
2 / 9 / 0
Регистрация: 12.10.2011
Сообщений: 173
11.11.2013, 23:18  [ТС]
Интересно / удаляет файлы, а \\ не трогает .txt из папки. Сработало! Благодарю.
0
169 / 66 / 15
Регистрация: 24.03.2013
Сообщений: 467
Записей в блоге: 1
11.11.2013, 23:24
Цитата Сообщение от SAZl Посмотреть сообщение
Интересно / удаляет файлы, а \\ не трогает .txt из папки.
Интересно я один не понял, что здесь имелось ввиду

Добавлено через 27 секунд
Цитата Сообщение от SAZl Посмотреть сообщение
Вот этот
Да, там толком оказывается про ZipStream не было.
0
 Аватар для SAZl
2 / 9 / 0
Регистрация: 12.10.2011
Сообщений: 173
11.11.2013, 23:47  [ТС]
Almaz_1993, имеется в виду, что если написать так:
Java
1
rename(new File("C:/b"), new FileWriter("C:/r.txt"));
То в папке "C:/b" пропадают .txt файлы.
А так нет:
Java
1
rename(new File("C:\\b"), new FileWriter("C:\\r.txt"));
0
169 / 66 / 15
Регистрация: 24.03.2013
Сообщений: 467
Записей в блоге: 1
12.11.2013, 01:08
Ну я бы все таки исользовал File.seporator
0
 Аватар для Skipy
2000 / 1427 / 92
Регистрация: 25.11.2010
Сообщений: 3,611
12.11.2013, 10:10
Цитата Сообщение от Almaz_1993 Посмотреть сообщение
Ну я бы все таки исользовал File.seporator
А я бы его не использовал.
0
12.11.2013, 11:16

Не по теме:

Цитата Сообщение от Skipy Посмотреть сообщение
А я бы его не использовал.
интересно почему?)

0
 Аватар для Skipy
2000 / 1427 / 92
Регистрация: 25.11.2010
Сообщений: 3,611
12.11.2013, 12:54
Цитата Сообщение от -LM- Посмотреть сообщение

Не по теме:


интересно почему?)

Сложно использовать то, что не существует и невозможно создать.
0
 Аватар для -LM-
57 / 57 / 12
Регистрация: 11.02.2013
Сообщений: 132
12.11.2013, 14:27
Цитата Сообщение от Skipy Посмотреть сообщение
Сложно использовать то, что не существует и невозможно создать.
видимо еще не дорос, чтоб понять столь высокую мисль(я не хотел Вас обидить) я реально не понял

у меня
Java
1
System.out.println(File.separator);
работает
и
Java
1
2
String filesep = File.separator;
System.out.println(new File("c:" + filesep + "любая папка").getAbsolutePath());
тоже работает

я думал если юзать File.separator то JVM сама определяет ОСь и юзает нужный "file separator"

Добавлено через 10 минут
Цитата Сообщение от Almaz_1993 Посмотреть сообщение
Ну я бы все таки исользовал File.seporator
кажись дошло, seporator написан через "о" а не через "а"
0
169 / 66 / 15
Регистрация: 24.03.2013
Сообщений: 467
Записей в блоге: 1
12.11.2013, 15:22
Цитата Сообщение от -LM- Посмотреть сообщение
кажись дошло, seporator написан через "о" а не через "а"
Sorri, но думаю, суть то ясна была
0
 Аватар для Skipy
2000 / 1427 / 92
Регистрация: 25.11.2010
Сообщений: 3,611
12.11.2013, 17:06
Цитата Сообщение от Almaz_1993 Посмотреть сообщение
Sorri, но думаю, суть то ясна была
Суть-то, может, и была ясна. Но привыкайте писать правильно. Это сейчас компилятор Вас поправит. А вот когда Вы унаследуетесь от, скажем, WindowAdapter и определите там метод windouСlosing - компилятор Вам ничего не скажет. А Вы потом неделю будете ошибку искать - почему не вызывается метод на закрытие окна?
1
13.11.2013, 18:01

Не по теме:

Цитата Сообщение от Almaz_1993 Посмотреть сообщение
Sorri
Sorry
;)

2
 Аватар для SAZl
2 / 9 / 0
Регистрация: 12.10.2011
Сообщений: 173
13.11.2013, 21:13  [ТС]
Almaz_1993,
Прошу прощения, что ранее не отписался по вашему коду. Только вот сейчас освободился и решил запустить. Вывело 3 ошибки. Как комментарии укажу каждую из них.
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
import java.awt.List;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.text.ParseException;
import java.util.zip.ZipEntry;
import java.util.zip.ZipInputStream;
import java.util.zip.ZipOutputStream;
 
 
public class Task {
 
    public static int arhivation (String path, List<Task> tasks) //The type List is not generic; it cannot be                   //parameterized with arguments <Task>
 
            throws IOException {
        ZipOutputStream zipStream = new ZipOutputStream(new FileOutputStream(
                path));
        String pathToTextFile = String.valueOf(path.toCharArray(), 0,
                path.length() - 3);
 
        pathToTextFile += "forZip.txt";
        int count = saveToTextFile(pathToTextFile, tasks);
        File file = new File(pathToTextFile);
 
        ZipEntry entry = new ZipEntry(pathToTextFile);
        zipStream.putNextEntry(entry);
        byte[] bytes = getBytesFromFile(file); //The method getBytesFromFile(File) is undefined for the type Task
        zipStream.write(bytes);
        zipStream.flush();
 
        file.delete();
 
        zipStream.close();
        return count;
    }
    public static int loadFromZipFile(String path, List<Task> tasks) //The type List is not generic; it cannot be                   //parameterized with arguments <Task>
            throws IOException, ParseException {
        ZipInputStream zipStream = new ZipInputStream(new FileInputStream(path));
        ZipEntry entry = zipStream.getNextEntry();
 
        FileOutputStream fout = new FileOutputStream(entry.getName());
        for (int c = zipStream.read(); c != -1; c = zipStream.read()) {
            fout.write(c);
        }
        zipStream.closeEntry();
 
        fout.close();
        zipStream.close();
 
        int count = loadFromTextFile(entry.getName(), tasks);
        File file = new File(entry.getName());
        file.delete();
 
        return count;
    }
    }
Добавлено через 41 минуту
Упс. В 15 и 38 не дописал полностью: The type List is not generic; it cannot be parameterized with arguments <Task>
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
13.11.2013, 21:13
Помогаю со студенческими работами здесь

Архивация файлов
Здравствуйте, как отредактировать данную строку так, чтоб в архиве были только файлы и подпапки? Т.е. при открытии архива сразу доступны...

Архивация файлов
Всем привет, сделал архивацию диска (Д), на другой диск. Размер файлов на диске (д)-50ГБ,а сам (Backup.bkf)-14МБ---ЭТО НОРМАЛЬНО или НЕТ?

Архивация файлов
Люди, HELP! Комп предложил архивацию файлов. Архив - 3 Гб. Свободного места - 46 Гб. Он орёт, что недостаточно места на диске (3й...

Архивация по 50 файлов
Есть одна папка в которой n картинок. Я вбрасываю в нее и жму name.bat Скрипт создает внутри name1 name2 .. name5 и в каждой по 50...

Архивация файлов
Есть скрипт, который берёт файлы с папки и архивирует в другую папку: Add-Type -assembly &quot;system.io.compression.filesystem&quot;...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru