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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 11.09.2010, 19:39   #1
Shouldercannon
Участник клуба Подтвердите свой е-майл
 
Аватар для Shouldercannon
 
Регистрация: 26.01.2008
Сообщений: 1,897
Вопрос Перезапись при копировании/перемещении

Так я копирую/перемещаю папки
Код:
function CopyDir(const fromDir, toDir: string): Boolean;
var
  fos: TSHFileOpStruct;
begin
  ZeroMemory(@fos, SizeOf(fos));

  with fos do
    begin
      wFunc := FO_COPY;
      fFlags := FOF_FILESONLY;
      pFrom := PChar(fromDir + #0);
      pTo := PChar(toDir)
    end;

  Result := (0 = ShFileOperation(fos));
end;

function MoveDir(const fromDir, toDir: string): Boolean; 
var 
  fos: TSHFileOpStruct;
begin 
  ZeroMemory(@fos, SizeOf(fos)); 

  with fos do
    begin
      wFunc := FO_MOVE;
      fFlags := FOF_FILESONLY;
      pFrom := PChar(fromDir + #0);
      pTo := PChar(toDir)
    end;

  Result := (0 = ShFileOperation(fos)); 
end;
...
CopyDir('C:\Test', 'C:\New');
MoveDir('C:\Test', 'C:\New');
Если такая папка уже существует, то вы водится стандартный диалог перезаписи Windows. Можно ли как-нибудь обойти его?

Так я перемещаю файлы
Код:
MoveFile('C:\000.txt', 'D:\000.txt');
Но при данном способе не происходит перезапись файла. Как исправить?
Shouldercannon вне форума Ответить с цитированием
Старый 11.09.2010, 19:57   #2
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

ручками все делать
каждый файл, каждую папочку
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 11.09.2010, 20:56   #3
Shouldercannon
Участник клуба Подтвердите свой е-майл
 
Аватар для Shouldercannon
 
Регистрация: 26.01.2008
Сообщений: 1,897
По умолчанию

А если серъёзно?
Shouldercannon вне форума Ответить с цитированием
Старый 11.09.2010, 21:03   #4
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

полагаю это?
Цитата:
FOF_NOCONFIRMATION

Respond with Yes to All for any dialog box that is displayed.
комбинируем через or

вообще мой ответ был самый универсальный.

но вот именно по вашей функции.
в msdn пишут что в висте её заменили(но оставлена ли старая, я не знаю), насчет семерки не написано.

кстати, ответ я получил введя в гугл название функции(и потом перешел на описание структуры что передается как параметр(точнее указатель на которую)).
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.

Последний раз редактировалось Пепел Феникса; 11.09.2010 в 21:13.
Пепел Феникса вне форума Ответить с цитированием
Старый 12.09.2010, 02:32   #5
Shouldercannon
Участник клуба Подтвердите свой е-майл
 
Аватар для Shouldercannon
 
Регистрация: 26.01.2008
Сообщений: 1,897
По умолчанию

Код:
var
  fos: TSHFileOpStruct;
begin
  ZeroMemory(@fos, SizeOf(fos));

  with fos do
    begin
      wFunc := FO_COPY;
      fFlags := FOF_FILESONLY or FOF_NOCONFIRMATION;
      pFrom := PChar(fromDir + #0);
      pTo := PChar(toDir)
    end;

  Result := (0 = ShFileOperation(fos));
end;

Где можно найти справку по fFlags?
Можно ли MoveFile заставить перезаписывать существующий файл?

Последний раз редактировалось Shouldercannon; 12.09.2010 в 20:09.
Shouldercannon вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Отрисовка Series при перемещении формы Nigadyai Общие вопросы Delphi 7 26.05.2010 22:40
Моргает label при перемещении Maxs Компоненты Delphi 21 26.11.2009 19:57
защита формулы при перемещении аргумента tohdom Microsoft Office Excel 8 11.11.2009 16:59
Изменить курсор при перемещении формы Nester Общие вопросы Delphi 11 28.09.2009 18:29
Процедура при перемещении формы Alex Cones Общие вопросы Delphi 7 28.07.2009 09:11