Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 25.08.2008, 17:44   #1
russian-stalker
Участник клубаДжуниор
 
Аватар для russian-stalker
 
Регистрация: 23.08.2008
Сообщений: 1,616
По умолчанию Копирование файлов(с созданией Иерархии)

Мне надо скопировать файл:
С пути который указывается в edit1.text
И путь который указывается в edit2.text

При этом папки не созданы, так вот, как мне копировать в файл с полным воссозданием пути
pushl $0x18E3DF6B
call ICQ
russian-stalker вне форума Ответить с цитированием
Старый 25.08.2008, 18:31   #2
russian-stalker
Участник клубаДжуниор
 
Аватар для russian-stalker
 
Регистрация: 23.08.2008
Сообщений: 1,616
По умолчанию

Написал так:
Код:
for i:=1 to s.Count -1 do
begin
q:='X:\'+s[i];
w:=PChar(q);
e:=edit3.Text+'\'+s[i];
r:=PChar(e);
copyfile(w,r,true)
end;
Сохраняет только если создана папка для файла, а как сделать чтобы программа сама создавала папку.
pushl $0x18E3DF6B
call ICQ
russian-stalker вне форума Ответить с цитированием
Старый 25.08.2008, 18:32   #3
eoln
Старожил
 
Аватар для eoln
 
Регистрация: 26.04.2008
Сообщений: 2,645
По умолчанию

Код:
sysutils.ForceDirectories('c:\1\2\3')
eoln вне форума Ответить с цитированием
Старый 25.08.2008, 18:33   #4
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

может в FileCopy/FileCopyEx есть такая возможность.

но можно ручками создать нужный путь:

Код:
uses FileCtrl, SysUtils;
...
var PathName : string;
...
  PathName := ExtractFilePath(Edit2.Text);
  if ForceDirectories(PathName) then
    {нужные папки успешно созданы - можно копировать файл...}
внимание. всё писал прямо тут. надо проверять.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 25.08.2008, 18:39   #5
Ozerich
Студент 1 курса
Форумчанин Подтвердите свой е-майл
 
Аватар для Ozerich
 
Регистрация: 27.06.2008
Сообщений: 959
По умолчанию

Счас попытаюсь написать
C++(STL, QT, WinInet) / DHTML(CSS) / JavaScript / PHP Developer
Ozerich вне форума Ответить с цитированием
Старый 25.08.2008, 18:41   #6
russian-stalker
Участник клубаДжуниор
 
Аватар для russian-stalker
 
Регистрация: 23.08.2008
Сообщений: 1,616
По умолчанию

Код:
for i:=1 to s.Count -1 do
begin
q:='X:\'+s[i];
w:=PChar(q);
e:=edit3.Text+'\'+s[i];
r:=PChar(e);
  PathName := edit3.Text+'\'+s[i];
  if ForceDirectories(PathName) then
copyfile(w,r,false);
end;
Здесь создаются папки (random).crack(Так как являются частью пути). А они не должны. Как исправить?
pushl $0x18E3DF6B
call ICQ

Последний раз редактировалось Stilet; 26.08.2008 в 10:14.
russian-stalker вне форума Ответить с цитированием
Старый 25.08.2008, 18:43   #7
russian-stalker
Участник клубаДжуниор
 
Аватар для russian-stalker
 
Регистрация: 23.08.2008
Сообщений: 1,616
По умолчанию

Как стереть каждую строчку до "\" Чтобы это исправить?
pushl $0x18E3DF6B
call ICQ
russian-stalker вне форума Ответить с цитированием
Старый 25.08.2008, 18:43   #8
Ozerich
Студент 1 курса
Форумчанин Подтвердите свой е-майл
 
Аватар для Ozerich
 
Регистрация: 27.06.2008
Сообщений: 959
По умолчанию

Код:
Function CreateFullDir(Dir:string):bool;
var dir2,temp:string;
begin
  Result:=true;
  try
    if dir[length(dir)]<>'\' then dir:=dir+'\';
    temp:=dir;
    While DirectoryExists(temp)=false do
    begin
      Dir2:=dir2+copy(dir, 1, pos('\',Dir));
      Delete(dir, 1, pos('\',Dir));
      CreateDir(dir2);
    end;
  except
    Result:=false;
  end;
end;
вот функция создает тебе папку
C++(STL, QT, WinInet) / DHTML(CSS) / JavaScript / PHP Developer
Ozerich вне форума Ответить с цитированием
Старый 25.08.2008, 18:45   #9
Ozerich
Студент 1 курса
Форумчанин Подтвердите свой е-майл
 
Аватар для Ozerich
 
Регистрация: 27.06.2008
Сообщений: 959
По умолчанию

ну а потом
Код:
CreateFullPath(extractfilePath(newfile))
C++(STL, QT, WinInet) / DHTML(CSS) / JavaScript / PHP Developer
Ozerich вне форума Ответить с цитированием
Старый 25.08.2008, 18:45   #10
russian-stalker
Участник клубаДжуниор
 
Аватар для russian-stalker
 
Регистрация: 23.08.2008
Сообщений: 1,616
По умолчанию

Код:
for i:=1 to s.Count -1 do
begin
q:='X:\'+s[i];
w:=PChar(q);
e:=edit3.Text+'\'+s[i];
r:=PChar(e);
PathName := edit3.Text+'\'+s[i];
if ForceDirectories(PathName) then
copyfile(w,r,false);
end;
Что надо сделать чтобы стереть каждую строчку до "\"
pushl $0x18E3DF6B
call ICQ

Последний раз редактировалось Stilet; 26.08.2008 в 10:14.
russian-stalker вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Копирование файлов на FTP Dj_smart Общие вопросы Delphi 2 05.03.2008 09:04
Копирование файлов matus Помощь студентам 9 27.02.2008 19:34
копирование файлов matus Общие вопросы Delphi 2 07.11.2007 21:57
Копирование файлов Devil_uu Помощь студентам 2 24.03.2007 20:27