РџСЂРѕРіСЂР°РСВР В РЎВР В РЎвЂР ЎР‚ованРСвЂР В Р’Вµ | ОтлаРТвЂР  С”Р В° | Web-технологРСвЂР  С†| Microsoft Office | Теор.Р В РЎвЂР  Р…форРСВатРСвЂР  С”Р В° | Р В Р’ВсслеРТвЂ-Р В Р’Вµ операцРСвЂР  в„– | Операц. РЎРѓР СвЂР РЋР С“-Р В РЎВР РЋРІР‚в„– | РќРѕРІРѕСЃС‚Рц|
ПроектРСвЂР ЎР‚ованРСвЂР В Р’Вµ Р В Р’ВР В Р Р‹ | Р В Р’ВРЎРѓРЎРѓР С”. Р В РЎвЂР  Р…С‚-С‚ | Трансляторы | РћР± авторах | Карта сайта | РџРѕРСвЂР ЎРѓР С” |
Язык РїСЂРѕРіСЂР°РСВР В РЎВР В РЎвЂР ЎР‚ованРСвЂР РЋР РЏ Turbo Pascal |
РЎСЂРµРТвЂР В Р’В° РїСЂРѕРіСЂР°РСВР В РЎВР В РЎвЂР ЎР‚ованРСвЂР РЋР РЏ Delphi 6 |
Язык РїСЂРѕРіСЂР°РСВР В РЎВР В РЎвЂР ЎР‚ованРСвЂР РЋР РЏ C++ |
Язык РїСЂРѕРіСЂР°РСВР В РЎВР В РЎвЂР ЎР‚ованРСвЂР РЋР РЏ C# |
Язык РїСЂРѕРіСЂР°РСВР В РЎВР В РЎвЂР ЎР‚ованРСвЂР РЋР РЏ Assembler |
Язык РїСЂРѕРіСЂР°РСВР В РЎВР В РЎвЂР ЎР‚ованРСвЂР РЋР РЏ Go |
Язык РїСЂРѕРіСЂР°РСВР В РЎВР В РЎвЂР ЎР‚ованРСвЂР РЋР РЏ Haskell |
Язык РїСЂРѕРіСЂР°РСВР В РЎВР В РЎвЂР ЎР‚ованРСвЂР РЋР РЏ Java |
Язык РїСЂРѕРіСЂР°РСВР В РЎВР В РЎвЂР ЎР‚ованРСвЂР РЋР РЏ Kotlin |
Язык РїСЂРѕРіСЂР°РСВР В РЎВР В РЎвЂР ЎР‚ованРСвЂР РЋР РЏ LISP |
Язык РїСЂРѕРіСЂР°РСВР В РЎВР В РЎвЂР ЎР‚ованРСвЂР РЋР РЏ Prolog |
Язык РїСЂРѕРіСЂР°РСВР В РЎВР В РЎвЂР ЎР‚ованРСвЂР РЋР РЏ Python |
Параллельные алгорРСвЂР ЎвЂљР СВР РЋРІР‚в„– |
СетРцПетрРц|
Начала |
ОтлаРТвЂР ЎвЂЎР СвЂР  С” Turbo Debugger |
РћСЃРЅРѕРІС‹ HTML |
ТехнологРСвЂР РЋР РЏ Flash |
Язык РїСЂРѕРіСЂР°РСВР В РЎВР В РЎвЂР ЎР‚ованРСвЂР РЋР РЏ Perl |
Основы языка PHP |
РћСЃРЅРѕРІС‹ PhotoShop |
РћСЃРЅРѕРІС‹ JavaScript |
РћСЃРЅРѕРІС‹ CSS |
РћСЃРЅРѕРІС‹ CorelDRAW |
Р В РІР‚ВР В РЎвЂР  В±Р В»Р СвЂР  С•РЎвЂљР ВµР С”Р В° jQuery |
Текстовый процессор Microsoft Word |
Р В Р’Влектронные таблРСвЂР ЎвЂ РЎвЂ№ Microsoft Excel |
Р РЋР СвЂР ЎРѓРЎвЂљР ВµР СВР В Р’В° управленРСвЂР РЋР РЏ базаРСВРцРТвЂР  В°Р Р…ных Microsoft Access |
Р В Р’ВспользованРСвЂР В Р’Вµ VBA Р Р†Microsoft Excel |
Место Р В РЎвЂР  Р…форРСВатРСвЂР  С”РцРІСЃРСвЂР ЎРѓРЎвЂљР ВµР СВР В Р’Вµ наук |
РћР±С‰РСвЂР В Р’Вµ СЃРІРµРТвЂР  ВµР Р…Р СвЂР РЋР РЏ РѕР± Р В РЎвЂР  Р…форРСВацРСвЂР  С†|
РљРѕРТвЂР В РЎвЂР ЎР‚ованРСвЂР В Р’Вµ Р В РЎвЂР  Р…форРСВацРСвЂР  С†Р Р†РЎвЂљР ВµР С•РЎР‚Р СвЂР  С†Р РЃР ВµР Р…РЅРѕРЅР° |
Основные РїРѕРЅСЏС‚РСвЂР РЋР РЏ теорРСвЂР  С†Р В°Р В»Р С–РѕСЂРСвЂР ЎвЂљР СВРѕРІ|
КлассРСвЂР ЎвЂЎР ВµРЎРѓР С”Р СвЂР В Р’Вµ форРСВалРСвЂР  В·Р В°РЎвЂ Р СвЂР  С†Р С—РѕРЅСЏС‚РСвЂР РЋР РЏ 'алгорРСвЂР ЎвЂљР СВ' |
РџРѕРЅСЏС‚РСвЂР В Р’Вµ рекурсРСвЂР  С†|
Сложность алгорРСвЂР ЎвЂљР СВР В Р’В° |
МетоРТвЂР РЋРІР‚в„– разработкРцалгорРСвЂР ЎвЂљР СВРѕРІ|
Сложность Р·Р°РТвЂР  В°РЎвЂЎР С†|
Р В Р’ВнфорРСВацРСвЂР  С•Р Р…РЅРѕРµ Р В РЎВРѕРТвЂР  ВµР В»Р СвЂР ЎР‚ованРСвЂР В Р’Вµ |
Основные РїРѕРЅСЏС‚РСвЂР РЋР РЏ теорРСвЂР  С†Р С–рафов|
АлгорРСвЂР ЎвЂљР СВР РЋРІР‚в„– РїРѕРСвЂР ЎРѓР С”Р В° Р Р…Р В° графах |
МатроРСвЂР В РўвЂР РЋРІР‚в„–. 'Р–Р°РТвЂР  Р…ые' алгорРСвЂР ЎвЂљР СВР РЋРІР‚в„– |
Р”РСвЂР  Р…Р°РСВР В РЎвЂР ЎвЂЎР ВµРЎРѓР С”РѕРµ РїСЂРѕРіСЂР°РСВР В РЎВР В РЎвЂР ЎР‚ованРСвЂР В Р’Вµ |
АлгорРСвЂР ЎвЂљР СВР РЋРІР‚в„– |
UNIX Р С†Linux |
РЈРЅРСвЂР ЎвЂћР СвЂР ЎвЂ Р СвЂР ЎР‚ованный язык Р В РЎВРѕРТвЂР  ВµР В»Р СвЂР ЎР‚ованРСвЂР РЋР РЏ UML |
Р’РІРµРТвЂР  ВµР Р…Р СвЂР В Р’Вµ РІРСВашРСвЂР  Р…РЅРѕРµ обученРСвЂР В Р’Вµ Р РЋР С“ Р В РЎвЂР ЎРѓР С—ользованРСвЂР  ВµР С Python |
РћСЃРЅРѕРІС‹ СЃРѕР·РТвЂР  В°Р Р…Р СвЂР РЋР РЏ нейросетРцРЅР° Python |
Глубокое обученРСвЂР В Р’Вµ Р Р…Р В° Python |
Начала |
Р”РСвЂР  Р…Р°РСВР В РЎвЂР ЎвЂЎР ВµРЎРѓР С”Р СвЂР В Р’Вµ структуры Р В РўвЂР  В°Р Р…ных |
Р В РІР‚ВР В РЎвЂР  В±Р В»Р СвЂР  С•РЎвЂљР ВµР С”Р В° RX |
Основные классы РцсобытРСвЂР РЋР РЏ Delphi |
Основные РєРѕРСВпоненты Delphi |
ОрганРСвЂР  В·Р В°РЎвЂ Р СвЂР РЋР РЏ потоков|
ТехнологРСвЂР РЋР РЏ COM |
Язык РїСЂРѕРіСЂР°РСВР В РЎВР В РЎвЂР ЎР‚ованРСвЂР РЋР РЏ Object Pascal |
Локальные Р В РІР‚ВР” Р Р†Delphi |
Р В РІР‚ВР В РЎвЂР  В±Р В»Р СвЂР  С•РЎвЂљР ВµР С”Р В° OWL |
Р В РІР‚ВР В РЎвЂР  В±Р В»Р СвЂР  С•РЎвЂљР ВµР С”Р В° Qt |
Р В РІР‚ВР В РЎвЂР  В±Р В»Р СвЂР  С•РЎвЂљР ВµР С”Р В° STL |
Р В РІР‚ВР В РЎвЂР  В±Р В»Р СвЂР  С•РЎвЂљР ВµР С”Р В° шаблоновклассовBorland |
РћСЃРЅРѕРІС‹ РєРѕРСВпьютерной графРСвЂР  С”Р С†|
Р”РСвЂР  Р…Р°РСВР В РЎвЂР ЎвЂЎР ВµРЎРѓР С”Р СвЂР В Р’Вµ структуры Р В РўвЂР  В°Р Р…ных |
Начала |
Обработка Р В РЎвЂР ЎРѓР С”лючРСвЂР ЎвЂљР ВµР В»РЎРЉР Р…ых РЎРѓР СвЂР ЎвЂљРЎС“ацРСвЂР  в„– |
РћРїС‚РСвЂР В РЎВР В РЎвЂР  В·Р В°РЎвЂ Р СвЂР РЋР РЏ Р РЋР С“ РїРѕРСВощью ассеРСВблера |
РћСЃРЅРѕРІС‹ объектно-РѕСЂРСвЂР  ВµР Р…С‚РСвЂР ЎР‚ованного РїСЂРѕРіСЂР°РСВР В РЎВР В РЎвЂР ЎР‚ованРСвЂР РЋР РЏ |
ПотокРцРІРІРѕРТвЂР В Р’В°-вывоРТвЂР В Р’В° |
Разное |
Р РµРТвЂР  В°Р С”тор Resource Workshop |
РЎСЂРµРТвЂР В Р’В° Visual C++ |
РџСЂРѕРіСЂР°РСВР В РЎВР В РЎвЂР ЎР‚ованРСвЂР В Р’Вµ Р Р†Microsoft Visual C++ 2010 |
ТехнологРСвЂР РЋР РЏ CUDA |
ТехнологРСвЂР РЋР РЏ OLE |
Начала |
16-Р В Р’В±Р В РЎвЂР ЎвЂљР Р…РѕРµ РїСЂРѕРіСЂР°РСВР В РЎВР В РЎвЂР ЎР‚ованРСвЂР В Р’Вµ |
32-Р В Р’В±Р В РЎвЂР ЎвЂљР Р…РѕРµ РїСЂРѕРіСЂР°РСВР В РЎВР В РЎвЂР ЎР‚ованРСвЂР В Р’Вµ |
РћСЃРЅРѕРІС‹ логРСвЂР ЎвЂЎР ВµРЎРѓР С”РѕРіРѕ РїСЂРѕРіСЂР°РСВР В РЎВР В РЎвЂР ЎР‚ованРСвЂР РЋР РЏ |
Р”РСвЂР  Р…Р°РСВР В РЎвЂР ЎвЂЎР ВµРЎРѓР С”Р СвЂР В Р’Вµ структуры Р В РўвЂР  В°Р Р…ных |
Visual Prolog |
Р В РІР‚ВР В РЎвЂР  В±Р В»Р СвЂР  С•РЎвЂљР ВµР С”Р В° PyQt5 |
Р В РІР‚ВР В РЎвЂР  В±Р В»Р СвЂР  С•РЎвЂљР ВµР С”Р В° Tkinter |
Р В РІР‚в„ўР В РЎвЂР  В·РЎС“алРСвЂР  В·Р В°РЎвЂ Р СвЂР РЋР РЏ Р В РўвЂР  В°Р Р…ных |
Начала |
Р—Р°РТвЂР  В°РЎвЂЎР С†ComputerScience |
РекурсРСвЂР РЋР РЏ |
ВклаРТвЂР  С”Р В° RXControls |
ВклаРТвЂР  С”Р В° RXDBAware |
ВклаРТвЂР  С”Р В° RXTools |
ВклаРТвЂР  С”Р В° Standard |
ВклаРТвЂР  С”Р В° Additional |
РЎРѕР·РТвЂР  В°Р Р…Р СвЂР В Р’Вµ Internet-РїСЂРСвЂР  В»Р С•Р В¶Р ВµР Р…Р СвЂР  в„– |
ВклаРТвЂР  С”Р В° System |
ВклаРТвЂР  С”Р В° Win32 |
ВклаРТвЂР  С”Р В° Servers |
ТехнологРСвЂР РЋР РЏ ADO |
ВклаРТвЂР  С”Р В° QReport |
ВклаРТвЂР  С”Р В° InterBase |
ВклаРТвЂР  С”Р В° Dialogs |
Начала |
РЎСЂРµРТвЂР В Р’В° РїСЂРѕРіСЂР°РСВР В РЎВР В РЎвЂР ЎР‚ованРСвЂР РЋР РЏ. Язык Р В Р Р‹/Р В Р Р‹++ |
На этом шаге мы рассмотрим модифицирующие функции для работы с файлами и директориями
Кроме проверки наличия, а также получения атрибутов рассматриваемых объектов в классе Files есть модифицирующие функции для работы с файлами и директориями. Данные функции можно разбить на 4 группы:
Рассмотрим каждую группу.
Функции для создания директорий следующие:
Следующая группа это функции для создания файлов:
Третья группа модицирующих функций это функции для удаления файла или пустой директории:
Последняя группа функций это функции для копирования и перемещения файла или пустой директории.
Приведем ниже примеры программ, использующие рассмотренные выше функции.
import java.io.File; import java.io.IOException; import java.nio.file.Files; import java.nio.file.Path; import java.nio.file.Paths; public class Main { /*Задаем количество создаваемых файлов*/ public static final int N = 4; /** * Функция для вывода списка файлов в заданной директории * @param dir Путь до директории * */ private static void printFilesList(Path dir) { System.out.println(); System.out.println("Список файлов в папке " + dir + ": "); File[] filesList = dir.toFile().listFiles(); if (filesList.length == 0) { System.out.println("\tПапка пуста"); } else { for (File file : filesList) { System.out.println("\t" + file); } } System.out.println(); } public static void main(String[] args) throws IOException { /*Будем создавать временную папку в текущей директории*/ Path rootDir = Paths.get(""); /*Создаем временную папку*/ Path dir = Files.createTempDirectory(rootDir, "tmp"); System.out.println("Папка " + dir + " создана"); /*Создаем N файлов во временной папке*/ Path[] files = new Path[N]; for (int i = 0; i < N; i++) { files[i] = Files.createTempFile(dir, "tmp", ".txt"); System.out.println("\tФайл " + files[i] + " создан"); } /*Выводим список файлов во временной папке*/ printFilesList(dir); System.out.println("Удаление файлов..."); /*Удаляем файлы из временной папки*/ for (int i = 0; i < N; i++) { Files.deleteIfExists(files[i]); } /*Выводим список файлов во временной папке*/ printFilesList(dir); /*Удаляем временную папку*/ System.out.println("Удаление временной папки..."); Files.deleteIfExists(dir); } }
Проект можно взять здесь
Рис. 1. Вывод программы
import java.io.File; import java.io.IOException; import java.nio.file.Files; import java.nio.file.Path; import java.nio.file.Paths; public class Main { /*Задаем количество создаваемых файлов*/ public static final int N = 4; /** * Данная функция создает временную папку в заданной директории и с заданным * префиксом имени. Возвращает объект, ссылающийся на созданную папку. * * @param root Папка, в которой будет создавать временная папка * @param prefix Префикс для имени папки * @return Объект, ссылающийся на созданную папку. */ private static Path createTmpDir(Path root, String prefix) throws IOException { Path dir = Files.createTempDirectory(root, prefix); System.out.println("Временная папка " + dir + " создана"); return dir; } /** * Функция для удаления временной папки * * @param dir Путь до папки */ private static void deleteTmpDir(Path dir) throws IOException { System.out.println("Удаление папки " + dir); Files.deleteIfExists(dir); } /** * Данная функция создает временные файлы в заданной директории. * Возвращает массив созданных файлов. * * @param root Папка, в которой будет создавать временная папка * @param count Количество создаваемых файлов * @return Массив путей созданных файлов. */ private static Path[] createTmpFiles(Path root, int count) throws IOException { Path[] files = new Path[count]; System.out.println("Создание файлов в папке " + root); for (int i = 0; i < count; i++) { files[i] = Files.createTempFile(root, "tmp", ".txt"); System.out.println("\tФайл " + files[i] + " создан"); } System.out.println(); return files; } /** * Функция для удаления временных файлов */ private static void deleteTmpFiles(Path[] files) throws IOException { System.out.println("Удаление файлов из папки " + files[0].getParent().getFileName()); for (Path file : files) { Files.deleteIfExists(file); System.out.println("\tФайл " + file + " удален"); } System.out.println(); } /** * Функция для копирования некоторых файлов, начиная с позиции begin, и * заканчивая позицией end - 1 в папку to. * Возвращает массив путей скопированных файлов. * * @param files Массив файлов, которые нужно скопировать * @param begin Начальная позиция, с которой нужно копировать файлы * @param end Конечная позиция (не включается), до которой нужно копировать * файлы * @param to Путь до папки, в которую будут копироваться файлы * @return Возвращает массив путей скопированных файлов */ private static Path[] copyFiles(Path[] files, int begin, int end, Path to) throws IOException { Path[] newFiles = new Path[end - begin]; System.out.println("Копирование файлов [" + begin + "; " + (end - 1) + "] из папки " + files[begin].getParent() + " в папку " + to); for (int i = begin; i < end; i++) { newFiles[i - begin] = Paths.get(to.toString() + "/" + files[i].getFileName()); Files.copy(files[i], newFiles[i - begin]); System.out.println("\tФайл " + files[i].getFileName() + " скопирован"); } System.out.println(); return newFiles; } /** * Функция для перемещения некоторых файлов, начиная с позиции begin, и * заканчивая позицией end - 1 в папку to. * Возвращает массив путей файлов, которые были перемещены. * * @param files Массив файлов, которые нужно переместить * @param begin Начальная позиция, с которой нужно переместить файлы * @param end Конечная позиция (не включается), до которой нужно переместить * файлы * @param to Путь до папки, в которую будут перемещаться файлы * @return Возвращает массив путей файлов, которые были перемещены. */ private static Path[] moveFiles(Path[] files, int begin, int end, Path to) throws IOException { Path[] newFiles = new Path[end - begin]; System.out.println("Перемещение файлов [" + begin + "; " + (end - 1) + "] из папки " + files[begin].getParent() + " в папку " + to); for (int i = begin; i < end; i++) { newFiles[i - begin] = Paths.get(to.toString() + "/" + files[i].getFileName()); Files.move(files[i], newFiles[i - begin]); System.out.println("\tФайл " + files[i].getFileName() + " перемещен"); } System.out.println(); return newFiles; } /** * Функция для вывода списка файлов в заданной директории * * @param dir Путь до директории */ private static void printFilesList(Path dir) { System.out.println("Список файлов в папке " + dir + ": "); File[] filesList = dir.toFile().listFiles(); if (filesList.length == 0) { System.out.println("\tПапка пуста"); } else { for (File file : filesList) { System.out.println("\t" + file); } } System.out.println(); } public static void main(String[] args) throws IOException { Path rootDir = Paths.get(""); /*Создаем временные папки*/ Path dir = createTmpDir(rootDir, "tmp"); Path copyDir = createTmpDir(rootDir, "copy_tmp"); Path moveDir = createTmpDir(rootDir, "move_tmp"); System.out.println(); /*Создаем временные файлы в первой папке*/ Path[] files = createTmpFiles(dir, N); /*Копируем первую половину файлов из первой папки во вторую*/ Path[] copyFiles = copyFiles(files, 0, N / 2, copyDir); printFilesList(copyDir); /*Перемещаем вторую половину файлов из первой папки в третью папку*/ Path[] moveFiles = moveFiles(files, N / 2, N, moveDir); printFilesList(moveDir); /*Удаляем все созданные временные файлы*/ deleteTmpFiles(files); deleteTmpFiles(copyFiles); deleteTmpFiles(moveFiles); /*Удаляем все созданные временные папки*/ deleteTmpDir(dir); deleteTmpDir(copyDir); deleteTmpDir(moveDir); } }
Проект можно взять здесь
Рис. 2. Вывод программы
На следующем шаге мы продолжим изучение класса Files