Avatar billede emileej Nybegynder
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
Avatar billede borrisholt Novice
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
Avatar billede dmk Nybegynder
11. september 2000 - 11:01 #2
Prøv at kigge lidt på det her spørgsmål. Det burde kunne pege dig i den rigtige retning:

www.eksperten.dk/spm/18592

Venligst,
DMK
Avatar billede emileej Nybegynder
11. september 2000 - 13:44 #3
Jeg sidder lige nu i skole, skal først hjem og afprøve svarene.
Avatar billede borrisholt Novice
30. oktober 2000 - 16:42 #4
?
Avatar billede emileej Nybegynder
02. november 2000 - 13:30 #5
He heee... Glemte spørgsmålet sorry.

E-)mil
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester