RSS    

   Курсовая работа: Файловый менеджер


Выводы

Результатом данной курсовой работы является программа для работы с файлами. Программа представляет собой необходимый минимум для выполнения этой задачи.

Программа может иметь более развитый интерфейс и двупанельный вид — в общем случае имеют две равноценных панели для списка файлов, а в данном случае программа имеет однопанельный вид. В данной курсовой работе это не было реализовано.


Список используемой литературы

1.  Общая информация

http://yandex.ru/

http://www.google.ru/

http://ru.wikipedia.org/

2.  Информация о языке программирования

http://www.itkursi.ru/

Пауэрс Л., Снелл М. Microsoft Visual Studio 2008 => Microsoft Visual Studio 2008 Unleashed by Lars Powers and Mike Snell.

3.  Алгоритмы программы

http://program.rin.ru/

http://www.progz.ru/


Листинги

1.1.  Листинг Unit1.h

enum {ImageWindows, ImageFloppy, ImageDrive, ImageCD, ImageMyComp,ImageCloseFolder, ImageOpenFolder};

void strcat0(char * &dest,char *source); //Соединение строк с оставлением нулевого символа

void finstr(char *dest);

unsigned int lengthfinstr(char *dest);

struct DROPFILES {

 DWORD pFiles; // offset of file list

 POINT pt; // drop point (client coords)

 BOOL fNC; // is it on NonClient area

 // and pt is in screen coords

 BOOL fWide; // WIDE character switch

};

class TForm1 : public TForm

{

__published:        // IDE-managed Components

 TMainMenu *MainMenu1;

 TMenuItem *NFile;

 TTreeView *TreeView1;

 TSplitter *Splitter1;

 TListView *ListView1;

 TImageList *ImageList1;

 TImageList *ImageList2;

 TMenuItem *NProperty;

 TImageList *ImageList3;

 TImageList *ImageList4;

 TControlBar *ControlBar1;

 TToolBar *TBMain;

 void __fastcall TreeView1Expanding(TObject *Sender,

 TTreeNode *Node, bool &AllowExpansion);

 void __fastcall TreeView1Compare(TObject *Sender, TTreeNode *Node1,

 TTreeNode *Node2, int Data, int &Compare);

 void __fastcall TreeView1Expanded(TObject *Sender,

 TTreeNode *Node);

 void __fastcall TreeView1Collapsing(TObject *Sender,

 TTreeNode *Node, bool &AllowCollapse);

 void __fastcall TreeView1Editing(TObject *Sender, TTreeNode *Node,

 bool &AllowEdit);

 void __fastcall ListView1Compare(TObject *Sender, TListItem *Item1,

 TListItem *Item2, int Data, int &Compare);

 void __fastcall ListView1DblClick(TObject *Sender);

 void __fastcall ListView1MouseDown(TObject *Sender,

 TMouseButton Button, TShiftState Shift, int X, int Y);

 void __fastcall TreeView1DragOver(TObject *Sender, TObject *Source,

 int X, int Y, TDragState State, bool &Accept);

 void __fastcall TreeView1DragDrop(TObject *Sender, TObject *Source,

 int X, int Y);

 void __fastcall TreeView1MouseDown(TObject *Sender,

 TMouseButton Button, TShiftState Shift, int X, int Y);

 void __fastcall NPropertyClick(TObject *Sender);

 void __fastcall NOpenClick(TObject *Sender);

 void __fastcall NExitClick(TObject *Sender);

 void __fastcall NDeleteClick(TObject *Sender);

 void __fastcall TBDeleteClick(TObject *Sender);

 void __fastcall TBPropertyClick(TObject *Sender);

 void __fastcall TBExitClick(TObject *Sender);

 void __fastcall NViewClick(TObject *Sender);

 void __fastcall NPanelClick(TObject *Sender);

 void __fastcall NStatusBarClick(TObject *Sender);

 void __fastcall TBUpClick(TObject *Sender);

 void __fastcall TreeView1Edited(TObject *Sender, TTreeNode *Node,

 AnsiString &S);

 void __fastcall ListView1Edited(TObject *Sender, TListItem *Item,

 AnsiString &S);

 void __fastcall NRenameClick(TObject *Sender);

 void __fastcall TBRenameClick(TObject *Sender);

 void __fastcall NIconClick(TObject *Sender);

 void __fastcall NSmallIconClick(TObject *Sender);

 void __fastcall NListClick(TObject *Sender);

 void __fastcall NReportClick(TObject *Sender);

 void __fastcall ListView1DragOver(TObject *Sender, TObject *Source,

 int X, int Y, TDragState State, bool &Accept);

 void __fastcall ListView1DragDrop(TObject *Sender, TObject *Source,

 int X, int Y);

 void __fastcall TBUpdateClick(TObject *Sender);

 void __fastcall TreeView1Click(TObject *Sender);

 void __fastcall TBPasteClick(TObject *Sender);

 void __fastcall TBCopyClick(TObject *Sender);

 void __fastcall TBCutClick(TObject *Sender);

 void __fastcall NUpdateClick(TObject *Sender);

 void __fastcall NCutClick(TObject *Sender);

 void __fastcall NPasteClick(TObject *Sender);

 void __fastcall NCopyClick(TObject *Sender);

 void __fastcall NSelectAllClick(TObject *Sender);

 void __fastcall ListView1ColumnClick(TObject *Sender,

 TListColumn *Column);

 void __fastcall NSort0Click(TObject *Sender);

 void __fastcall NCreateFolderClick(TObject *Sender);

 void __fastcall NFileClick(TObject *Sender);

 void __fastcall NEditClick(TObject *Sender);

 void __fastcall ListView1ContextPopup(TObject *Sender,

 TPoint &MousePos, bool &Handled);

 void __fastcall TreeView1ContextPopup(TObject *Sender,

 TPoint &MousePos, bool &Handled);

private:       // User declarations

public:                 // User declarations

 __fastcall TForm1(TComponent* Owner);

 void ShowDrives();

 void ViewChild(TTreeNode *child);

 void DeleteChild(TTreeNode *Node);

 void ViewFailAndFolderInListView(AnsiString dir);

 void ExpandTreeForFile(AnsiString FileName);

 int FileAndFolderOperation(char *frombuf, char *tobuf, unsigned int operation);

 TTreeNode* AddChildInNodeTree(TTreeNode *Node, AnsiString Dir);

 TListItem *AddItemInListView(TSearchRec sr,AnsiString dir);

 void ViewProperty();

 void OpenFileOrFolder(); //Открыть в Listview файл или папку

 void DeleteFileOrFolder();

 void PrepareBufForOperationInListView(char * &frombuf);

 AnsiString RenameFileOrFolder(AnsiString);

 void RecursTree(TTreeNode *node,bool); //Рекурсивное обновление дерева

 void UpdateTreeView(bool); //Функция запуска рекурсивного обновления дерева

 void UpdateListView(bool); //Функция обновления listview

 void UpdateAll(bool);

 void PasteFileFromClipboard(); //Вставить из буфера

 void CopyFileToClipboard(bool); //Копировать файлы в буфер

 void CreateFol();

 void UpdateLabel();

 } ;

//---------------------------------------------------------------------------

extern PACKAGE TForm1 *Form1;

//---------------------------------------------------------------------------

#endif

1.2.  Листинг Unit1.cpp

//---------------------------------------------------------------------------

#include <vcl.h>

#pragma hdrstop

#include <shellapi.h>

#include "Unit1.h"

#include <winbase.h>

#include <vector.h>

#include "PropertyFile.h"

#include "PropertyDrive.h"

#include <ole2.h>

#define CFSTR_PREFERREDDROPEFFECT TEXT("Preferred DropEffect")

using namespace std;

vector <int> set_drive_num; //Вектор с номерами установленных дисков

TTreeNode *head, *tpItem; //Голова и темповая переменная

 //указатель на верхний отображаемый

 //узел для отсутствия скачков

unsigned int type_file_operation_drag_drop;

 //Тип операции при drag drop

AnsiString CurrentDir=""; //Текущий каталог

TViewStyle StyleListView=vsReport;

Set<char, 'A', 'Z'> DiskIn;

bool DragnDrop=true; //Флаг разрешения перетаскивания

int ColumnToSort=0; //Номер колонки по которой сортируют

int Direct=1; //Направление соритировки

//---------------------------------------------------------------------------

#pragma package(smart_init)

#pragma resource "*.dfm"

TForm1 *Form1;

//---------------------------------------------------------------------------

void FirstUpOtherDown(char *str) //Опускает все буквы кроме первой

 

void FirstUpOtherDown(AnsiString &str)

 

 str[1]-=32;

void GetDrives() //Определяет установленные диски

 { //и сохраняет их номера в set_drive_num

 unsigned int set_drive=GetLogicalDrives();

 for(int i=0;set_drive!=0;i++)

 {

 if(set_drive%2) set_drive_num.push_back(i);

 set_drive>>=1;

 }

 }

void TForm1::ShowDrives() //Отображает диски в дереве

 {

 char str[10];

 char inf[20];

 for(unsigned int i=0;i<set_drive_num.size();i++)

 {

 TTreeNode *temp; //Загрузка узла

 str[0]=(char)('A'+set_drive_num[i]);

 str[1]='\0';

 strcat(str,":\\");

 if(set_drive_num[i]!=0 && set_drive_num[i]!=1) //Заполнение информационного поля

 {

 if(!GetVolumeInformation(str,inf,20,NULL,NULL,NULL,NULL,NULL)) //Получение метки тома

 strcpy(inf,"");

 }

Страницы: 1, 2, 3, 4, 5, 6, 7, 8, 9


Новости


Быстрый поиск

Группа вКонтакте: новости

Пока нет

Новости в Twitter и Facebook

                   

Новости

© 2010.