Среда, 08.05.2024
Просто сайт
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Форум » Программирование » Borland C++ Builder 6 » SHFileOperation - Готовые функции для работы с файлами (Операции с файлами)
SHFileOperation - Готовые функции для работы с файлами
demenevДата: Четверг, 07.01.2010, 15:40 | Сообщение # 1
Группа: Удаленные





******************************************************************
Листинг 1. SHCopyFile.

bool SHCopyFile(HWND ParentWindow, String &SourceFile, String &DestFile,
bool Overwrite, bool ShowProgress)
{
SHFILEOPSTRUCT SHFOStruct;

SHFOStruct.hwnd = ParentWindow;
SHFOStruct.wFunc = FO_COPY;
SHFOStruct.pFrom = SourceFile.c_str();
SHFOStruct.pTo = DestFile.c_str();
SHFOStruct.fFlags = FOF_ALLOWUNDO | FOF_NOCONFIRMATION | FOF_NOERRORUI;
if(!Overwrite)
SHFOStruct.fFlags = SHFOStruct.fFlags | FOF_RENAMEONCOLLISION;
if(!ShowProgress)
SHFOStruct.fFlags |= FOF_SILENT;
return !SHFileOperation(&SHFOStruct);
}

******************************************************************
Листинг 2. SHMoveFile.

bool SHMoveFile(HWND ParentWindow, String &SourceFile, String &DestFile,
bool Overwrite, bool ShowProgress)
{
SHFILEOPSTRUCT SHFOStruct;

SHFOStruct.hwnd = ParentWindow;
SHFOStruct.wFunc = FO_MOVE;
SHFOStruct.pFrom = SourceFile.c_str();
SHFOStruct.pTo = DestFile.c_str();
SHFOStruct.fFlags = FOF_ALLOWUNDO | FOF_NOCONFIRMATION | FOF_NOERRORUI;
if(!Overwrite)
SHFOStruct.fFlags = SHFOStruct.fFlags | FOF_RENAMEONCOLLISION;
if(!ShowProgress)
SHFOStruct.fFlags |= FOF_SILENT;
return !SHFileOperation(&SHFOStruct);
}

******************************************************************
Листинг 3. SHDeleteFile.

bool SHDeleteFile(HWND ParentWindow, String &File, bool ShowProgress)
{
SHFILEOPSTRUCT SHFOStruct;

SHFOStruct.hwnd = ParentWindow;
SHFOStruct.wFunc = FO_DELETE;
SHFOStruct.pFrom = File.c_str();
SHFOStruct.fFlags = FOF_ALLOWUNDO | FOF_NOCONFIRMATION | FOF_NOERRORUI;
if(!ShowProgress)
SHFOStruct.fFlags |= FOF_SILENT;
int i = 5;
return !SHFileOperation(&SHFOStruct);
}Все три функции возвращают true в случае успешного выполнения операции, и false – если она закончилась неудачей.

Во всех трех функциях параметр ParentWindow задает родительское окно для отображаемого (если его отображение будет определено значением параметра ShowProgress) индикатора прогресса. Значение параметра ShowProgress true включает отображение индикатора прогресса; false – выключает.

Параметры SourceFile и DestFile функций SHCopyFile и SHMoveFile определяют имя исходного и результирующего файлов, а параметр Overwrite определяет, будет ли перезаписан уже существующий файл. Если его значение равно true – то файл будет перезаписан. Если false – то будет создан новый файл с названием "Копия уже существующего файла...", "Копия (2) уже существующего файла..." и т. д.

Параметр же File функции SHDeleteFile, как видно из названия, определяет имя файла, подлежащего удалению.

Я использую эти функции для работы с файлами следующим образом.

Листинг 4. Копирование файла с включенным индикатором прогресса и без перезаписывания существующего файла.

String Path = ExcludeTrailingPathDelimiter(ExtractFileDir(Application->ExeName))
+ "\\TestFiles\\";
String SourceFile = Path + "030219_1519.mdf";
String DestFile = Path + "copyfile2.txt";
SHCopyFile(Handle, SourceFile, DestFile, false, true);

 
Форум » Программирование » Borland C++ Builder 6 » SHFileOperation - Готовые функции для работы с файлами (Операции с файлами)
  • Страница 1 из 1
  • 1
Поиск:

Copyright MyCorp © 2024
Создать бесплатный сайт с uCoz