Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 22.03.2008, 17:01
aesoem aesoem вне форума
Прохожий
 
Регистрация: 07.03.2008
Сообщения: 19
Репутация: 10
По умолчанию копирование папки с файлами

... помогите организовать, очень полезная вещь будет
надо с диска D:\ все файлы на C:\ перегнать
Ответить с цитированием
  #2  
Старый 22.03.2008, 17:44
Аватар для Dux
Dux Dux вне форума
Активный
 
Регистрация: 18.03.2008
Сообщения: 206
Репутация: 16
По умолчанию

Цитата:
Сообщение от aesoem
... помогите организовать, очень полезная вещь будет
надо с диска D:\ все файлы на C:\ перегнать

Код:
procedure TForm1.Button1Click(Sender: TObject);
var
  OpStruc: TSHFileOpStruct;
  frombuf, tobuf: array [0..128] of Char;
begin
  FillChar( frombuf, Sizeof(frombuf), 0 );
  FillChar( tobuf, Sizeof(tobuf), 0 );
  StrPCopy( frombuf, 'c:\1\*.*' );
  StrPCopy( tobuf, 'c:\2' );
  with OpStruc do
  begin
    Wnd:= Handle;
    wFunc:= FO_COPY;
    pFrom:= @frombuf;
    pTo:=@tobuf;
    fFlags:= FOF_NOCONFIRMATION or FOF_RENAMEONCOLLISION;
    fAnyOperationsAborted:= False;
    hNameMappings:= nil;
    lpszProgressTitle:= nil;
  end;
  ShFileOperation( OpStruc );
end;

Ответить с цитированием
  #3  
Старый 22.03.2008, 18:05
aesoem aesoem вне форума
Прохожий
 
Регистрация: 07.03.2008
Сообщения: 19
Репутация: 10
По умолчанию

[Error] Unit1.pas(28): Undeclared identifier: 'TSHFileOpStruct'
[Error] Unit1.pas(37): Undeclared identifier: 'Wnd'
[Error] Unit1.pas(38): Undeclared identifier: 'wFunc'
[Error] Unit1.pas(39): Undeclared identifier: 'pFrom'
[Error] Unit1.pas(40): Undeclared identifier: 'pTo'
[Error] Unit1.pas(41): Undeclared identifier: 'fFlags'
[Error] Unit1.pas(41): Undeclared identifier: 'FOF_RENAMEONCOLLISION'
[Warning] Unit1.pas(41): Combining signed and unsigned types - widened both operands
[Error] Unit1.pas(42): Undeclared identifier: 'fAnyOperationsAborted'
[Error] Unit1.pas(43): Undeclared identifier: 'hNameMappings'
[Error] Unit1.pas(44): Undeclared identifier: 'lpszProgressTitle'
[Error] Unit1.pas(46): Undeclared identifier: 'ShFileOperation'
[Fatal Error] Project1.dpr(5): Could not compile used unit 'Unit1.pas'
Ответить с цитированием
  #4  
Старый 22.03.2008, 18:24
Аватар для Dux
Dux Dux вне форума
Активный
 
Регистрация: 18.03.2008
Сообщения: 206
Репутация: 16
По умолчанию

Попробуйте такой вариант:


Код:
 

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  StdCtrls;

{............}

private
    { Private declarations }
  public
    { Public declarations }
  end;
   procedure FileCopy(const SourceFileName, TargetFileName: string);

var

{................}

implementation

{$R *.DFM}

procedure FileCopy(const SourceFileName, TargetFileName: string);
var
  S, T : TFileStream;
begin
  S := TFileStream.Create(sourcefilename, fmOpenRead );
  try
    T := TFileStream.Create(targetfilename, fmOpenWrite or fmCreate);
    try
      T.CopyFrom(S, S.Size ) ;
      FileSetDate(T.Handle, FileGetDate(S.Handle));
    finally
      T.Free;
    end;
  finally
    S.Free;
  end;
end;

filecopy('c:\folder','d:\folder2');
Ответить с цитированием
  #5  
Старый 22.03.2008, 18:39
aesoem aesoem вне форума
Прохожий
 
Регистрация: 07.03.2008
Сообщения: 19
Репутация: 10
По умолчанию

чот я не пойму так чтоли
Код:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  StdCtrls, sButton;

type
  TForm1 = class(TForm)
    sButton1: TsButton;
    procedure sButton1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}
private
    { Private declarations }
  public
    { Public declarations }
  end;
   procedure FileCopy(const SourceFileName, TargetFileName: string);
   implementation

{$R *.DFM}

procedure FileCopy(const SourceFileName, TargetFileName: string);
var
  S, T : TFileStream;
begin
  S := TFileStream.Create(sourcefilename, fmOpenRead );
  try
    T := TFileStream.Create(targetfilename, fmOpenWrite or fmCreate);
    try
      T.CopyFrom(S, S.Size ) ;
      FileSetDate(T.Handle, FileGetDate(S.Handle));
    finally
      T.Free;
    end;
  finally
    S.Free;
  end;
end;
   procedure TForm1.sButton1Click(Sender: TObject);
begin
filecopy('c:\folder','d:\folder2');
end;

end.

Admin: Читаем правила форума по офрормлению кода, иначе последуют санкции.

Последний раз редактировалось Admin, 23.03.2008 в 14:03.
Ответить с цитированием
  #6  
Старый 22.03.2008, 18:48
Аватар для Dux
Dux Dux вне форума
Активный
 
Регистрация: 18.03.2008
Сообщения: 206
Репутация: 16
По умолчанию

Нет, у вас 2 раза объявляется Private и Public. Правильный вариант внизу

Код:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  StdCtrls, sButton;

type
  TForm1 = class(TForm)
    sButton1: TsButton;
    procedure sButton1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;
procedure FileCopy(const SourceFileName, TargetFileName: string);
var
  Form1: TForm1;

implementation

{$R *.dfm}
   
procedure FileCopy(const SourceFileName, TargetFileName: string);
var
  S, T : TFileStream;
begin
  S := TFileStream.Create(sourcefilename, fmOpenRead );
  try
    T := TFileStream.Create(targetfilename, fmOpenWrite or fmCreate);
    try
      T.CopyFrom(S, S.Size ) ;
      FileSetDate(T.Handle, FileGetDate(S.Handle));
    finally
      T.Free;
    end;
  finally
    S.Free;
  end;
end;
   procedure TForm1.sButton1Click(Sender: TObject);
begin
filecopy('c:\folder','d:\folder2');
end;

end.
Ответить с цитированием
  #7  
Старый 22.03.2008, 18:53
aesoem aesoem вне форума
Прохожий
 
Регистрация: 07.03.2008
Сообщения: 19
Репутация: 10
По умолчанию

откомпилировал но по нажатии на кнопку ничего не копируется...
Ответить с цитированием
  #8  
Старый 22.03.2008, 19:00
Аватар для Dux
Dux Dux вне форума
Активный
 
Регистрация: 18.03.2008
Сообщения: 206
Репутация: 16
По умолчанию

Цитата:
Сообщение от aesoem
откомпилировал но по нажатии на кнопку ничего не копируется...

Нашел еще одну опечатку, замените название sButton1Click на Button1Click

procedure TForm1.sButton1Click(Sender: TObject);
begin
filecopy('c:\folder','d:\folder2');
end;
Ответить с цитированием
  #9  
Старый 22.03.2008, 20:08
aesoem aesoem вне форума
Прохожий
 
Регистрация: 07.03.2008
Сообщения: 19
Репутация: 10
По умолчанию

а у меня AlphaSkins стоит...
Ответить с цитированием
  #10  
Старый 23.03.2008, 09:35
aesoem aesoem вне форума
Прохожий
 
Регистрация: 07.03.2008
Сообщения: 19
Репутация: 10
По умолчанию

теперь такая ошибка:
нет доступа, и прав для копирования
Изображения
Тип файла: gif Безымянный.GIF (10.0 Кбайт, 11 просмотров)
Ответить с цитированием
  #11  
Старый 23.03.2008, 12:12
Аватар для The Shadow
The Shadow The Shadow вне форума
Продвинутый
 
Регистрация: 11.06.2007
Адрес: Уфа, Россия
Сообщения: 793
Репутация: 35
По умолчанию

Попробуй запустить от имени администратора.
__________________
Что делать, когда сломался комп:
1. Если вы юзер - делать ноги.
2. Если ремонтник - делать деньги.
3. Если вы программист - делать вид, что так было задумано.
Ответить с цитированием
  #12  
Старый 23.03.2008, 12:37
Smirnov Ivan Smirnov Ivan вне форума
Прохожий
 
Регистрация: 26.02.2008
Сообщения: 12
Репутация: 10
По умолчанию

В общем тут команда
filecopy('c:\folder','d:\folder2');
как я понял , запрашивает файл folder(для его копии) которого нет)
а как папку или диск копировать, я тоже не могу найти команды(
Ответить с цитированием
  #13  
Старый 23.03.2008, 13:52
Smirnov Ivan Smirnov Ivan вне форума
Прохожий
 
Регистрация: 26.02.2008
Сообщения: 12
Репутация: 10
По умолчанию

нашел исходник от которого можно оттолкнуться)
http://www.delphisources.ru/files/so...drive_info.zip
Ответить с цитированием
  #14  
Старый 23.03.2008, 15:21
aesoem aesoem вне форума
Прохожий
 
Регистрация: 07.03.2008
Сообщения: 19
Репутация: 10
По умолчанию

Цитата:
Сообщение от Smirnov Ivan
нашел исходник от которого можно оттолкнуться)
http://www.delphisources.ru/files/so...drive_info.zip
немогу понять чем это может помочь?
а на счёт файлов если это вставить \*.*
Ответить с цитированием
  #15  
Старый 23.03.2008, 15:30
aesoem aesoem вне форума
Прохожий
 
Регистрация: 07.03.2008
Сообщения: 19
Репутация: 10
По умолчанию

да я не думал что у делфи возникнут проблемы на перевый взгляд с "лёгкой задачей"
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 22:00.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter