Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.11.05;
Скачать: CL | DM;

Вниз

Как скопировать все файлы из каталога   Найти похожие ветки 

 
Helen   (2006-10-19 10:53) [0]

Доброго дня! У меня вопрос: как скопировать все файлы *.dbf из каталога, т.е. один файл я делаю CopyFile(откуда, куда), а как группу. Их нужно сначала выбрать?


 
Elen ©   (2006-10-19 10:55) [1]


> Helen

Можно воспользоваться TFileListBox или FindFirst...FindNext


 
Dmitrij_K   (2006-10-19 10:59) [2]


> файл я делаю CopyFile(откуда, куда), а как группу.

циклом


 
Helen   (2006-10-19 11:02) [3]

TFileListBox использовать нельзя, т.к. приложение консольное.
А циклом, значит использовать FindFirst...FindNext? И как задать параметр у этих функций?


 
Helen   (2006-10-19 11:04) [4]

В хелпе нашла, что можно задавать маску, сейчас попробую. Еще ни разу не пользовала эти функции.


 
Elen ©   (2006-10-19 11:05) [5]


> Helen


var s:TSearchRec;
begin
if FindFirst(<Путь_к_файлам>"*.dbf",faanyfile,s)=0 then
repeat
 ListBox1.Items.Append(s.Name);
//ну и копорование <Путь_к_файлам>+s.name
until FindNext(s)<>0;
FindClose(s);


 
Ketmar ©   (2006-10-19 11:13) [6]

>[3] Helen 19-Oct-2006, 11:02
>приложение консольное.
чем .bat не угодили тогда?


 
Helen   (2006-10-19 11:17) [7]

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


 
Ketmar ©   (2006-10-19 11:22) [8]

>[7] Helen 19-Oct-2006, 11:17
ясно. тогда [5].


 
Anatoly Podgoretsky ©   (2006-10-19 18:50) [9]

ShFileOperation


 
Наиль ©   (2006-10-19 19:42) [10]


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

Попробывал написать .bat умеющий большинство из перечисленого.
В данном случае два Батника и Папка "Backup" находятся там же, где и dbf файлы.
copy_dbf.bat
Time /t > log.txt
for %%file in (*.dbf) do call copy_1Dbf.bat %%file
Time /t >>log.txt


copy_1dbf.bat
echo %1 >>log.txt
copy %1 Backup\*.* >>Log.txt


Time выдаёт время с точностью до минуты, поэтому лучше использовать, в этом месте, свою программу.
Echo выдаёт имя копируемого файла
Copy сообщает о результате копирования каждого файла.

Это не руководство к действию, а лишь проба сил.


 
DevilDevil ©   (2006-10-19 19:59) [11]

> Elen ©   (19.10.06 11:05) [5]

А меня всешда интересовало, что за "." и ".." ? И как от них корректно и быстро "избавиться"  ?


 
Наиль ©   (2006-10-19 20:13) [12]


> А меня всешда интересовало, что за "." и ".." ? И как от
> них корректно и быстро "избавиться"  ?

В [5] такого нет.
Но если будут, то избавить приблизительно так:
if s.Name[1]="." then Continue;
. - текущий каталог
.\*.* (или .\.\.\*.*) - все файлы текущего каталога.
.. - Родительская папка. Не знаю как точнее сформулировать
с:\Windows\.. - то же самое, что c:\


 
Amoeba ©   (2006-10-20 10:54) [13]

http://www.delphikingdom.com/asp/viewitem.asp?catalogid=91



Страницы: 1 вся ветка

Текущий архив: 2006.11.05;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.063 c
15-1160722370
IMHO
2006-10-13 10:52
2006.11.05
Охотники за мифами Windows Vista


2-1160984972
gvozdkoff
2006-10-16 11:49
2006.11.05
Paradox на другом компе


2-1161504507
SerJaNT
2006-10-22 12:08
2006.11.05
Подстрока в строке


6-1150401551
ponomar
2006-06-15 23:59
2006.11.05
pop3 attachment


15-1160662842
GeLLeR
2006-10-12 18:20
2006.11.05
Гениальная задача