11. september 2000 - 10:56
Der er
3 kommentarer og
2 løsninger
Kopierings funktion
Jeg skal bruge en funktion, der kopierer en mappe, med alle dens filer, undermapper og deres filer - ligesom windows\' kopiering.
E-)mil
11. september 2000 - 10:59
#1
Yo dude !
prøv dem her :
FileHandling.H
//---------------------------------------------------------------------------
#ifndef FileHandlingH
#define FileHandlingH
//---------------------------------------------------------------------------
void __fastcall DeleteFiles(AnsiString Files);
void __fastcall CopyFiles(AnsiString From, AnsiString Dest);
void __fastcall MoveFiles(AnsiString From, AnsiString Dest);
void __fastcall RenameFiles(AnsiString From, AnsiString Dest);
#endif
FileHandling.cpp
//---------------------------------------------------------------------------
#include <vcl.h>
#include <ShellAPI.hpp>
#include <Windows.h>
#include <SysUtils.hpp>
#pragma hdrstop
#include \"FileHandling.h\"
void __fastcall ExecuteOp(AnsiString From, AnsiString Dest, int IdOp)
{
TSHFileOpStruct *SHFileOpStruct = new TSHFileOpStruct();
From = ExpandFileName(From);
Dest = ExpandFileName(Dest);
char zFrom[MAX_PATH+2];
char zDest[MAX_PATH+2];
ZeroMemory(zFrom, sizeof(zFrom));
ZeroMemory(zDest, sizeof(zDest));
StrCopy(zFrom, From.c_str());
StrCopy(zDest, Dest.c_str());
SHFileOpStruct->hwnd = GetActiveWindow();
SHFileOpStruct->wFunc = IdOp;
SHFileOpStruct->pFrom = zFrom;
SHFileOpStruct->pTo = zDest;
SHFileOpStruct->fFlags = IdOp == FO_DELETE ? FOF_ALLOWUNDO | FOF_NOCONFIRMATION | FOF_NOCONFIRMMKDIR : FOF_ALLOWUNDO | FOF_NOCONFIRMATION;
SHFileOperation(SHFileOpStruct);
delete SHFileOpStruct;
}
void __fastcall CopyFiles(AnsiString From, AnsiString Dest)
{
ExecuteOp(From,Dest, FO_COPY);
}
void __fastcall DeleteFiles(AnsiString Files)
{
ExecuteOp(Files,\"\", FO_DELETE);
}
void __fastcall MoveFiles(AnsiString From, AnsiString Dest)
{
ExecuteOp(From,Dest, FO_MOVE);
}
void __fastcall RenameFiles(AnsiString From, AnsiString Dest)
{
if (ExtractFilePath(From) != \"\" && ExtractFilePath(Dest) == \"\")
Dest = ExtractFilePath(From) + Dest;
ExecuteOp(From,Dest, FO_RENAME);
}
//---------------------------------------------------------------------------
#pragma package(smart_init)
Jens B