www.pudn.com > Directory 225137102001.zip > copyfile.cpp


#include  
#include  
using namespace std; 
 
HWND button; 
HWND editbx1,editbx2; 
 
int dirwalk(); 
const char g_szClassName[] = "mywindowclass"; 
 
LRESULT CALLBACK WndProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam) 
{ 
	switch(msg) 
	{ 
	case WM_COMMAND: 
		if(LOWORD(wParam) == BN_CLICKED && (HWND)lParam == button){ 
			dirwalk(); 
		} 
		break; 
	case WM_CLOSE: 
		DestroyWindow(hwnd); 
		break; 
	case WM_DESTROY: 
			PostQuitMessage(0); 
		break; 
	default: 
			return DefWindowProc(hwnd, msg, wParam, lParam); 
	} 
 
	return 0; 
} 
 
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow) 
{ 
 
	WNDCLASSEX wc; 
	HWND hwnd; 
	MSG Msg; 
 
	wc.cbSize = sizeof(WNDCLASSEX); 
	wc.style = 0; 
	wc.lpfnWndProc = WndProc; 
	wc.cbClsExtra = 0; 
	wc.cbWndExtra = 0; 
	wc.hInstance = hInstance; 
	wc.hIcon = LoadIcon(NULL, IDI_APPLICATION); 
	wc.hCursor = LoadCursor(NULL, IDC_ARROW); 
	wc.hbrBackground = (HBRUSH)(COLOR_WINDOW+5); 
	wc.lpszMenuName = NULL; 
	wc.lpszClassName = g_szClassName; 
	wc.hIconSm = LoadIcon(NULL, IDI_APPLICATION); 
 
	if(!RegisterClassEx(&wc)) 
	{ 
		MessageBox(NULL, "Cannot register window","Error creating window", MB_OK); 
		return 0; 
	} 
 
	hwnd = CreateWindowEx(WS_EX_CLIENTEDGE,g_szClassName, "Copy File",WS_OVERLAPPEDWINDOW, 150,40,400,500,NULL,NULL, hInstance,NULL); 
	button = CreateWindow("Button","Copy Now",WS_CHILD | WS_VISIBLE,90,50,240,40,hwnd,NULL,hInstance,NULL); 
	editbx1 = CreateWindow("Edit", "Enter file to copy", WS_CHILD | WS_VISIBLE | WS_BORDER,115,150,200,40,hwnd,NULL,hInstance,NULL); 
	editbx2 = CreateWindow("Edit", "Enter destination here", WS_CHILD | WS_VISIBLE | WS_BORDER,115,230,200,40,hwnd,NULL,hInstance,NULL); 
	 
	if(hwnd == NULL) 
	{ 
		MessageBox(NULL, "Something is screwed up!", "ERROR", MB_OK); 
		return 0; 
	} 
 
	ShowWindow(hwnd, nCmdShow); 
	UpdateWindow(hwnd); 
 
	while(GetMessage(&Msg, NULL, 0,0)) 
	{ 
		TranslateMessage(&Msg); 
		DispatchMessage(&Msg); 
	} 
 
	return Msg.wParam; 
} 
 
int dirwalk() 
{ 
WIN32_FIND_DATA WFD; 
HANDLE fhwnd; 
BOOL fhwnd2; 
 
int i=1; 
char *file[800]; 
BOOL val; 
 
string cdrive; 
string cpath; 
string dest; 
string ddrive; 
 
//cdrive = "C:\\"; 
 
int len = GetWindowTextLength(editbx1)+1; 
TCHAR *pcbuf = new TCHAR[len + 1]; 
GetWindowText(editbx1, pcbuf,len); 
 
cdrive=pcbuf; 
 
int len2 = GetWindowTextLength(editbx2)+1; 
TCHAR *buf = new TCHAR[len2 + 1]; 
GetWindowText(editbx2, buf,len2); 
 
dest = buf; 
 
fhwnd = FindFirstFile(cdrive.c_str(), &WFD); 
file[i] = new char[strlen(WFD.cFileName)]; 
file[i] = WFD.cFileName; 
 
cdrive.erase(cdrive.length()-3,3); 
 
//MessageBox(NULL,cdrive.c_str(),"test",MB_OK); 
cpath = cdrive+file[i]; 
ddrive = dest + file[i]; 
 
val = CopyFile(cpath.c_str(),ddrive.c_str(),FALSE); 
if(val==0){ 
	MessageBox(NULL,"Error","Error",MB_OK); 
} 
 
//MessageBox(NULL,cpath.c_str(),"test",MB_OK); 
//MessageBox(NULL,ddrive.c_str(),"test",MB_OK); 
 
	if(fhwnd==INVALID_HANDLE_VALUE){ 
		exit(1); 
	} 
 
do{ 
 
fhwnd2 = FindNextFile(fhwnd,&WFD); 
i++; 
file[i] = new char[strlen(WFD.cFileName+1)]; 
file[i] = WFD.cFileName; 
cpath = cdrive+file[i]; 
ddrive = dest + file[i]; 
 
val = CopyFile(cpath.c_str(),ddrive.c_str(),FALSE); 
if(val==0){ 
MessageBox(NULL,"Error","Error",MB_OK); 
} 
 
//MessageBox(NULL,cpath.c_str(),"test",MB_OK); 
//MessageBox(NULL,ddrive.c_str(),"test",MB_OK); 
 
}while(fhwnd2!=0); 
 
MessageBox(NULL,"Copy Complete", "FileCopy", MB_OK); 
 
delete[] file[800]; 
	return 0; 
}