Форум программистов, компьютерный форум, киберфорум
Delphi для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/5: Рейтинг темы: голосов - 5, средняя оценка - 5.00
0 / 1 / 0
Регистрация: 25.04.2017
Сообщений: 20
1

Копирование файлов из одной папки с созданием для каждого скопированного файла каталога с ГУИД номером в задан

25.04.2017, 17:03. Показов 930. Ответов 7
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Добый день! Помогите пожалуйста создать программку, которая копирует название файлов выведенных в Листбокс, с последующим созданием папки с гуид-номером(количество папок должно равняться количеству значений выведенных в листбокс) и копированием файлов указанных в Листбоксе.

Добавлено через 16 минут
Код программы собственно выглядит так:
Delphi
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
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
unit Unit134;
 
interface
 
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, FileCtrl, ShellAPI;
 
type
  TForm1 = class(TForm)
    Button1: TButton;
    ListBox1: TListBox;
    Label1: TLabel;
    Button2: TButton;
    Edit1: TEdit;
    Label2: TLabel;
    Button3: TButton;
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure Button3Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
    Procedure Guid;
  end;
 
var
  Form1: TForm1;
  dir_in,dir_out:String;
 
implementation
 
uses ComObj;
 
{$R *.dfm}
procedure TForm1.FormCreate(Sender: TObject);
begin
  dir_in := 'D:\PROJECTS\Test\002\in\';
  dir_out := 'D:\PROJECTS\Test\002\out\'
end;
 
procedure TForm1.Guid;//создаю процедуру которая создает папку с номер-Гуид
var
  guid:TGUID;
  dir_file_out, guid_str:string;
begin
   CreateGuid(Guid);
  guid_str := GuidToString(Guid);
  dir_file_out := dir_out + guid_str;
  dir_file_out := StringReplace(dir_file_out, '{', '',[rfReplaceAll, rfIgnoreCase]);
  dir_file_out := StringReplace(dir_file_out, '}', '',[rfReplaceAll, rfIgnoreCase]);
  dir_file_out := StringReplace(dir_file_out, '-', '',[rfReplaceAll, rfIgnoreCase]);
  CreateDir(dir_file_out);
  ShowMessage('Создание нового каталога завершено' + dir_file_out);
end;
 
procedure TForm1.Button1Click(Sender: TObject);
var
  sr:TsearchRec;
  findRes:Integer;
begin
  ListBox1.Clear;
  FindRes := FindFirst(dir_in + '*.*',faAnyFile,sr);
  while FindRes = 0 do
  begin
    if ((sr.attr and faDirectory) = faDirectory) and ((sr.Name = '.') or (sr.Name = '..')) then
    begin
      findRes := FindNext(sr);
      Continue;
    end;
    ListBox1.Items.Add(sr.Name);
    FindRes := FindNext(sr);
  end;
  FindClose(sr);
end;
 
procedure TForm1.Button2Click(Sender: TObject);
var
  i:integer;
begin
  i := ListBox1.Items.Count;
  Edit1.Text := intTostr(i);
end;
 
procedure TForm1.Button3Click(Sender: TObject);
var
Вопрос, что прописать для работы последней кнопки, которая должна создавать количество каталогов по количеству указанных в листбоксе элементов и копировать элементы в созданные папки.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
25.04.2017, 17:03
Ответы с готовыми решениями:

Копирование TXT-файлов из одной папки и BMP-файлов из другой папки в папку, в которой находится пакетный файл
Доброго времени суток. У кого есть возможность сообразить какой код мне нужет чтобы сделать вот...

Копирование TXT-файлов из одной папки и BMP-файлов из другой папки в папку, в которой находится пакетный файл
Доброго времени суток. У кого есть возможность сообразить какой код мне нужет чтобы сделать вот...

Копирование файлов из одной папки в другую, но с пропуском одинаковых файлов в этих папках
Доброго времени суток. Прошу помощи в написании батника. Задача: Есть папка А с файлами 1,2,3 и...

Копирование файлов из одной папки в разные
Здравствуйте. Я с помощью макросов в SolidWorks создал несколько конфигураций одного изделия....

7
5395 / 4323 / 1060
Регистрация: 29.08.2013
Сообщений: 27,129
Записей в блоге: 3
25.04.2017, 18:24 2
//создаю процедуру которая создает папку с номер-Гуид
тут должна быть процедура с параметром - ты ей гуид, она создает такую папку

далее в цикле по элементам ListBox ты генеришь гуид, создаешь папку и копируешь все что нужно в папку
0
0 / 1 / 0
Регистрация: 25.04.2017
Сообщений: 20
25.04.2017, 18:51  [ТС] 3
Извините я новичок в программирования,я неправильно создал процедуру GUid, если не сложно можно подробней в виде кода описать в сообщении.

Добавлено через 22 минуты
НЕ могу собразить каким образом построить цикл.
0
5395 / 4323 / 1060
Регистрация: 29.08.2013
Сообщений: 27,129
Записей в блоге: 3
26.04.2017, 16:16 4
если код выше написал ты, то и переписать тоже сможешь

новичок? - изучай и пробуй
0
3586 / 2195 / 693
Регистрация: 29.05.2013
Сообщений: 9,374
26.04.2017, 20:01 5
А на кой вам вообще листбокс в этой задаче? У вас читается содержимое каталога и на его основе вы хотите создать гуид-каталоги. Уберите вообще этот лишний компонент. Прочитали имя файла, создали гуид-каталог по его имени, и скопировали в паку файлик.
0
0 / 1 / 0
Регистрация: 25.04.2017
Сообщений: 20
26.04.2017, 20:28  [ТС] 6
это задание такое вывести названия файлов в листбокс, после создать по количеству выведенных файлов папки в назвнии которых будет гуид, а в этой папке будет файлик указанный в листбоксе, на этом этапе я и встал, не могу собразить как прописать цикл, который создает папку с гуид номером копирует в нее файл и так далее по всем указанным в листбоксе.
0
3586 / 2195 / 693
Регистрация: 29.05.2013
Сообщений: 9,374
26.04.2017, 22:02 7
Примерно так:
Delphi
1
2
3
4
5
6
7
for i := 0 to ListBox1.Items.Count - 1
do begin
    Dir := ExtractFilePath(ListBox1.Items.Strings[i]) + GUID + '\';
    CreateDir(Dir);
    Res := False;
    CopyFile(ListBox1.Items.Strings[i], Dir + ExtractFileName(ListBox1.Items.Strings[i]), Res);
    end;
Добавлено через 1 минуту
Кстати, после получения GUID из него лучше удалить разделители.
0
0 / 1 / 0
Регистрация: 25.04.2017
Сообщений: 20
27.04.2017, 08:45  [ТС] 8
я написал процедуру где есть удаление разделителей и скобок с применением стрингреплейса.
0
27.04.2017, 08:45
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
27.04.2017, 08:45
Помогаю со студенческими работами здесь

Копирование файлов из одной папки в другую
Добрый день! Нашел на форуме хорошую функцию копирования файлов из одной папки в другую. Но там...

Копирование файлов из одной папки в другую
Нужно скопировать все файлы из папки С:/zello в папку С:/zello2 Программу с самого начала до конца...

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

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

Копирование каждого файла из папки в отдельную папку
Для выполнения некоторых задач на работе необходимо скопировать из папки, допустим, Camera_1 *.jpeg...

Копирование файла из одной папки в другую папку с названием того файла
Здравствуйте. Задача: Есть список названий картинок в таблице Excel. (1.jpg, 2.jpg......) ...


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru