Space Base Space Base
+7 928 008-80-89
ru
  • en
  • es
  • Главная
  • Услуги
  • Портфолио
  • Библиотека
  • Контакты
  • Главная
  • Услуги
  • Портфолио
  • Библиотека
  • Контакты
  1. Библиотека
  2. Delphi
  3. Копирование, удаление, перемещение, переименование и проверка на наличие файла в Delphi
logo

Копирование, удаление, перемещение, переименование и проверка на наличие файла в Delphi

03.01.2015

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

В данной статье описываются возможности манипуляции с уже существующими файлами. Механизмы создания, открытия и сохранения файла описаны в статье "Создание и работа с текстовыми файлами в Delphi".

Копирование файла

Копирование файла выполняется функцией CopyFile, параметрами которой служит путь к исходному файлу и путь, где должна быть расположена копия файла.

Третий параметр определяет, будет ли перезаписан файл в случае, если файл с таким именем уже есть. Если параметр задан значением True, то в случае если файл уже есть, функция выполнять копирование не будет и вернет значение False. Таким образом, можно добавить дополнительную проверку и защитить информацию от потери из-за перезаписи файла.

if CopyFile('myfile.txt', 'newfile.txt', true) then
ShowMessage('Файл успешно скопирован.')
else
ShowMessage('Ошибка: файл не был скопирован.');

Если третьим параметром указано значение False, то функция будет копировать файл с перезаписью, если файл уже есть и в результате всегда возвращать значение True.

CopyFile('myfile.txt', 'newfile.txt', false);

Так как пути к файлам задаются параметром типа PChar, то использование строковых переменных в этой функции будет вызывать ошибку. Такая проблема может произойти, если, например, путь к файлу задавать в компонентах Edit или OpenDialog. В этом случае, нужно выполнить приведение типов данных к нужному виду:

CopyFile(PChar(MyEdit.text), PChar(MyOpenDialog.FileName), false);

Удаление файла

Удаление файла в Delphi осуществляется с помощью функции DeleteFile. В качестве единственного параметра задается путь удаляемого файла.

DeleteFile('myfile.txt');

В результате своего выполнения функция DeleteFile возвращает результат логического типа: true, если файл был удален; false, если файл не был удален (например, если файл отсутствует).

if DeleteFile('myfile.txt') then
ShowMessage('Файл удален успешно.')
else
ShowMessage('Ошибка: файл не был удален.');

Перемещение файла

Чтобы при перемещении не выполнять два действия – копирование и удаление исходного файла, в Delphi имеется специальная функция MoveFile. Два параметра функции указывают путь исходного файла, и путь, куда должен быть перемещен файл.

MoveFile('myfile.txt', 'newpath/myfile.txt');

Аналогично уже рассмотренным функциям, эта возвращает значение true, при успешном выполнении своих операций и false, при возникновении ошибки. Ошибка может возникнуть, например, при отсутствии исходного файла или наличии файла с заданным именем в новой директории.

if MoveFile('myfile.txt', 'newpath/myfile.txt') then
ShowMessage('Файл успешно перемещен.')
else
ShowMessage('Ошибка: файл не был перемещен.');

При использовании компонентов и строковых переменных, здесь так же потребуется приведение типов данных:

MoveFile(PChar(MyEdit.text), PChar(MyOpenDialog.FileName));

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

MoveFile('myfile.txt', 'newfile.txt');

Кроме того, функцию MoveFile можно применить для переименования или перемещения папки со всеми вложенными в нее файлами. В приведенном ниже примере, папка "myfolder" будет перемещена в поддиректорию "newfolder1" и переименована в "newfolder2".

MoveFile('myfolder', 'newfolder1/newfolder2');

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

Для переименования файла используется функция RenameFile. Строковые параметры здесь так же содержат путь исходного файла и путь файла с новым именем.

RenameFile('myfile.txt', 'newfile.txt');

Функция переименования так же возвращает результат своего выполнения логическим значением.

if RenameFile('myfile.txt', 'newfile.txt') then
ShowMessage('Файл успешно переименован.')
else
ShowMessage('Ошибка: файл не был переименован.');

Учитывая, что во втором параметре можно указать не только новое имя файла, но и новый путь, эту функцию можно так же использовать для перемещения файла. Данную функцию так же можно использовать для переименования и перемещения папок со всеми их вложениями.

MoveFile('myfile.txt', 'newpath/myfile.txt');

Проверка на наличие файла

Часто перед выполнением каких либо действий с файлом, необходимо убедиться в его существовании на диске. Для этих целей используется функция FileExists. Единственный строковый параметр функции содержит путь к файлу. При своем выполнении функция вернет значение true, если указанный файл есть. False, если файла нет.

if FileExists('myfile.txt') then
ShowMessage('Указанный файл существует.')
else
ShowMessage('Такой файл отсутствует.');

Другие материалы:

Копирование, удаление, перемещение, переименование и проверка на наличие файла в Delphi


Функция MoveFile в Delphi, описание и примеры


Создание, удаление и проверка на наличие папки в Delphi


Написать комментарий

Комментарии

В комментариях запрещено публиковать рекламные материалы. Все сообщения оправляются на модерацию и будут опубликованы, если не нарушают правил сайта после проверки.


коммент.

Разработка сайтов

Корпоративный сайт
Интернет-магазин
Лендинг - одностраничный сайт
Сайт-визитка
Сайт-портфолио

Проектирование

Прототип, UX-дизайн

Дизайн

UI-дизайн
Логотип

+54 911 2801-4950

info@space-base.net
+7 928 008-80-89

Web-сайты для успешного бизнеса

Web-сайты для успешного бизнеса

Главная Услуги Портфолио События Библиотека Контакты
+7 928 008-80-89 Меню
Политика в отношении обработки персональных данных © Copyright 2014 - | Space-Base

Лучшее время начать свой проект - Сейчас!

Выбраны опции:

Отправить сообщение на:

Telegram WhatsApp

Отправляя сообщение, вы даете свое согласие на
обработку песональных данных