Работа с директориями.

Вопросы программирования и использования среды Lazarus.

Модератор: Модераторы

Работа с директориями.

Сообщение Seemmyy » 22.09.2012 20:16:57

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

Входные данные :
C:\Новая папка 1
D:\Новая папка 2

Файлы и папки из "Новая папка 1" копируются в "Новая папка 2".
Seemmyy
незнакомец
 
Сообщения: 4
Зарегистрирован: 27.05.2012 19:48:42

Re: Работа с директориями.

Сообщение Odyssey » 22.09.2012 21:24:57

Если нужно скопировать всё из одной папки в другую в программе на Lazarus, то можно попробовать так:
Код: Выделить всё
uses FileUtil;

// ...

if CopyDirTree('С:\Новая папка 1', 'D:\Новая папка 2') then
  // файлы успешно скопированы
else
  // при копировании возникла ошибка
Odyssey
энтузиаст
 
Сообщения: 580
Зарегистрирован: 29.11.2007 17:32:24

Re: Работа с директориями.

Сообщение alex208210 » 26.09.2012 13:21:32

lazarus 1.0 fpc 2.6.0 не находит copydirtree
fileutil подключен, в чем может быть проблема? Функция удалена или переименована?
alex208210
постоялец
 
Сообщения: 207
Зарегистрирован: 12.05.2010 13:16:51

Re: Работа с директориями.

Сообщение amateur » 27.09.2012 09:50:27

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

Тотал командер, или можно и DC.

Но если Вы про код то проблема залючается в Вашей лени (пардон). Копи-пасте расписан в нете более чем.
А вот это найдено через 2 минуты просмотра файла.
Код: Выделить всё
// Copy a file and a whole directory tree
function CopyFile(const SrcFilename, DestFilename: string;
                  Flags: TCopyFileFlags=[cffOverwriteFile]): boolean;
function CopyFile(const SrcFilename, DestFilename: string; PreserveTime: boolean): boolean;
function CopyDirTree(const SourceDir, TargetDir: string; Flags: TCopyFileFlags=[]): Boolean;



До чего лениво все это. И че лезть в сорцы фпс, если данная функция "приблуда" из c:\lazarus\components\lazutils\
Аватара пользователя
amateur
энтузиаст
 
Сообщения: 552
Зарегистрирован: 03.08.2007 10:15:32

Re: Работа с директориями.

Сообщение Vadim » 27.09.2012 13:37:22

amateur писал(а):Но если Вы про код то проблема залючается в Вашей лени (пардон).
...
данная функция "приблуда" из c:\lazarus\components\lazutils\

Вот специально посмотрел сейчас данную приблуду в указанном Вами месте - нету. :roll: Чья же это лень тогда, мне интересно?
Vadim
долгожитель
 
Сообщения: 4112
Зарегистрирован: 05.10.2006 08:52:59
Откуда: Красноярск

Re: Работа с директориями.

Сообщение amateur » 27.09.2012 14:28:43

Лень - Ваша...
1. FileUtil - Вы указали данный модуль и лазарь на Вас не ругнулся (если ругнулся значит файла нет :));
2. lazutils - "приблуда" лазаря как и кодетолс (для удобства, или лентяйства - к.з.);
3. Часть кода, указанный выше, я вытянул из FileUtil;
4. Если сложно пользоваться поисковиком - как это можно назвать?

Или Вы надеялись увидеть функцию как название файла (кажись интересна идея, скоко тода файлов будет :))

У меня лазарь 1.1 фпс 2.6.0 винда, деби.
Аватара пользователя
amateur
энтузиаст
 
Сообщения: 552
Зарегистрирован: 03.08.2007 10:15:32

Re: Работа с директориями.

Сообщение Vadim » 27.09.2012 15:33:35

1. Модуль этот есть.
2. Каталог этот есть. Модуль 1 лежит там.
И всё. В этом модуле указанной Вами функции нет.

lazarus 0.9.31, Lazarus 1.0

Так что давайте ка, на счёт лени, Вы возмёте свои слова обратно, хорошо?
Vadim
долгожитель
 
Сообщения: 4112
Зарегистрирован: 05.10.2006 08:52:59
Откуда: Красноярск

Re: Работа с директориями.

Сообщение eastorwest » 27.09.2012 16:54:14

Vadim прав... в исходниках релиза Lazarus 1.0 (по ссылке http://sourceforge.net/projects/lazarus ... z/download)
файл <lazarus>\components\lazutils\fileutil.pas
ревизии
Код: Выделить всё
{  $Id: fileutil.pas 32656 2011-10-03 15:09:04Z sekelsenmat $  }

Содержимое указанных строчек такое:
Код: Выделить всё
// file actions
function ReadFileToString(const Filename: string): string;
function CopyFile(const SrcFilename, DestFilename: string): boolean;
function CopyFile(const SrcFilename, DestFilename: string; PreserveTime: boolean): boolean;
function GetTempFilename(const Directory, Prefix: string): string;

Никаких CopyDirTree не замечаю...
eastorwest
новенький
 
Сообщения: 57
Зарегистрирован: 23.07.2009 20:21:46
Откуда: Н-ск

Re: Работа с директориями.

Сообщение sign » 27.09.2012 17:00:01

Ну как же нет.
Всё есть.
2.png


Добавлено спустя 1 минуту 48 секунд:
Да, кстати, взято из этого модуля
У вас нет необходимых прав для просмотра вложений в этом сообщении.
sign
энтузиаст
 
Сообщения: 1131
Зарегистрирован: 30.08.2009 09:20:53

Re: Работа с директориями.

Сообщение Ichthyander » 27.09.2012 17:05:55

В Lazarus 1.1 есть функция CopyDirTree, а в Lazarus 1.0 - нет: все просто
Аватара пользователя
Ichthyander
энтузиаст
 
Сообщения: 699
Зарегистрирован: 04.04.2007 08:32:43
Откуда: Астрахань

Re: Работа с директориями.

Сообщение amateur » 27.09.2012 17:30:51

1- е свои слова я назад не верну;
2-е на сам вопрос ответ дан - Тотал командер или ДК (можно и фар использовать);
Внимательно прочитайте текстовку и сам вопрос...

Многие пишут: АААААААААА помАгите.... и задают, честное слово детский вопрос который уже давно расписан до мелочей.
И как можно назвать данный факт? Лень и еще раз лень. Поиск создан для того чтобы искать.

Повторюсь: данные приблуды написаны для удобства (т.е. они отдельны от лазаря). Возможен факт недостачи :) но кто мешает не использовать "приблуды", а сделать (найти) нужный себе код?

Кстати Vadim Вы - Seemmyy ? Если нет то лень не к Вам...

Что мешало человеку найти: Пример: Реализуем копирование файла программы с наименованием consple_laz.exe на диск C
задав один вопрос в гугле? Ссылки не дам, а гугл даст...
Аватара пользователя
amateur
энтузиаст
 
Сообщения: 552
Зарегистрирован: 03.08.2007 10:15:32


Вернуться в Lazarus

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 213

Рейтинг@Mail.ru