Файловый менеджер. HELP!

Статус темы:
Закрыта.
  1. Требуется написать простейший Файловый менеджер.
    Начал писать, и погряз в вопросах. Вобщем вот исходник.
    Как реализоть копирование, удалиние и создание файла через горячие кнопки типа F1/F2/F5...
    И вообще через какие компоненты это лучше сделать.

    http://rghost.ru/4595681



    Сам код : Все что пока сделал

    PHP:
    type
      TForm1 
    = class(TForm)
        
    MainMenu1TMainMenu;
        
    N1TMenuItem;
        
    N2TMenuItem;
        
    ShellTreeView1TShellTreeView;
        
    ShellTreeView2TShellTreeView;
        
    DriveComboBox1TDriveComboBox;
        
    DriveComboBox2TDriveComboBox;
        
    Edit1TEdit;
        
    Edit2TEdit;
        
    procedure DriveComboBox1Change(SenderTObject);
        
    procedure DriveComboBox2Change(SenderTObject);
        
    procedure ShellTreeView1Change(SenderTObjectNodeTTreeNode);
        
    procedure ShellTreeView2Change(SenderTObjectNodeTTreeNode);
      private
        { Private 
    declarations }
      public
        { Public 
    declarations }
      
    end;

    var
      
    Form1TForm1;

    implementation

    {$R *.dfm}

    procedure TForm1.DriveComboBox1Change(SenderTObject);
    begin
    ShellTreeView1
    .Root:=DriveCombobox1.Drive+':\';
    end;

    procedure TForm1.DriveComboBox2Change(Sender: TObject);
    begin
    ShellTreeView2.Root:=DriveComboBox2.Drive+'
    :\';
    end;

    procedure TForm1.ShellTreeView1Change(Sender: TObject; Node: TTreeNode);
    begin
    Edit1.Text:=shelltreeview1.Path+'
    \';
    end;

    procedure TForm1.ShellTreeView2Change(Sender: TObject; Node: TTreeNode);
    begin
    Edit2.Text:=shelltreeview2.Path+'
    \';
    end;


    end.
     
  2. Итого:
    Код:
    function GetDirTime(const Dir: string): TDateTime;
    var
      H: Integer;
      F: TFileTime;
      S: TSystemTime;
    begin
      H := CreateFile(PChar(Dir), $0080, 0, nil, OPEN_EXISTING,
        FILE_FLAG_BACKUP_SEMANTICS, 0);
      if H <> -1 then
      begin
        GetFileTime(H, @F, nil, nil);
        FileTimeToLocalFileTime(F, F);
        FileTimeToSystemTime(F, S);
        Result := SystemTimeToDateTime(S);
        CloseHandle(H);
      end
      else
        Result := -1;
    end;
    
    procedure listfiles(lv: TListView; const Dir: string);
    var
      ListItem: TListItem;
      sr: tsearchrec;
      NewColumn: TListColumn;
    begin
     lv.Items.Clear;
        if FindFirst(IncludeTrailingPathDelimiter(dir)+ '*', faDirectory, sr) = 0 then
        begin
        ListItem := LV.Items.Add; // создается объект
        ListItem.Caption := sr.name;
        ListItem.SubItems.Add('<DIR>');
        ListItem.SubItems.Add('');
        ListItem.SubItems.Add(datetimetostr( GetDirTime(sr.name)));
        end;
        while FindNext(sr) = 0 do
        begin
        ListItem := LV.Items.Add; // создается объект
        ListItem.Caption := sr.name;
        ListItem.SubItems.Add('<DIR>');
        ListItem.SubItems.Add('');
        ListItem.SubItems.Add(datetimetostr(GetDirTime(sr.name)));
        end;
        FindClose(sr);
    
    
        if FindFirst(IncludeTrailingPathDelimiter(dir)+ '*', faanyfile-faDirectory, sr) = 0 then
        begin
        ListItem := LV.Items.Add; // создается объект
        ListItem.Caption := ChangeFileExt(sr.name,'');
        ListItem.SubItems.Add(Copy( ExtractFileExt(sr.Name),2,Length(ExtractFileExt(sr.Name))));
        ListItem.SubItems.Add(inttostr(sr.size));
        ListItem.SubItems.Add(datetimetostr(FileDateToDateTime(sr.time)));
        end;
        while FindNext(sr) = 0 do
        begin
          ListItem := LV.Items.Add;
          ListItem.Caption := ChangeFileExt(sr.name,'');
          ListItem.SubItems.Add(Copy( ExtractFileExt(sr.Name),2,Length(ExtractFileExt(sr.Name))));
          ListItem.SubItems.Add(inttostr(sr.size));
          ListItem.SubItems.Add(datetimetostr(FileDateToDateTime(sr.time)));
        end;
        FindClose(sr);
    
    end;
    
    Сначала каталоги, затем файлы. И даты...

    Использувать так:
    Код:
    listfiles(lv1,'C:');
     
  3. Всё, господа. Проблема решена. Огромное спасибо Dr. MefistO за помощь!
     
  4. [CLOSED]

    ________
     
Статус темы:
Закрыта.