文件的复制、粘贴一般是怎样实现的? 1。文件的复制、粘贴是怎样实现的?是用fopen打开,再用fwrite写一遍吗?还是有复制、粘贴的函数呢?2。远程的复制、粘贴又怎样实现?比如,我要把一个本地的文件,粘贴到一台远程机器的指定目录内(管理员帐号和密码都有)。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 都是通过剪贴板来实现的拷贝与粘贴文本 下边的源代码演示了如何将文本(包含在CString对象“source”中)拷贝到剪贴板上。CString source; //put your text in sourceif(OpenClipboard()){ HGLOBAL clipbuffer; char * buffer; EmptyClipboard(); clipbuffer = GlobalAlloc(GMEM_DDESHARE, source.GetLength()+1); buffer = (char*)GlobalLock(clipbuffer); strcpy(buffer, LPCSTR(source)); GlobalUnlock(clipbuffer); SetClipboardData(CF_TEXT,clipbuffer); CloseClipboard();} 反过来,下面的代码是用来实现从剪贴板上取得文本的。char * buffer = NULL;//open the clipboardCString fromClipboard;if ( OpenClipboard() ) { HANDLE hData = GetClipboardData( CF_TEXT ); char * buffer = (char*)GlobalLock( hData ); fromClipboard = buffer; GlobalUnlock( hData ); CloseClipboard();} 远程的话你需要与server建立连接然后用CFtpConnection::PutFile()把本地文件放到server上这里有一个包装好的操作ftp的类http://www.codeguru.com/Cpp/I-N/internet/ftp/article.php/c3439 BOOL CopyFile( LPCTSTR lpExistingFileName, LPCTSTR lpNewFileName, BOOL bFailIfExists ); 如何与资源管理器互动剪切/拷贝/粘贴文件 http://www.vckbase.net/document/viewdoc/?id=444VOID CutOrCopyFiles(char *lpBuffer,UINT uBufLen,BOOL bCopy){ UINT uDropEffect; DROPFILES dropFiles; UINT uGblLen,uDropFilesLen; HGLOBAL hGblFiles,hGblEffect; char *szData,*szFileList; DWORD *dwDropEffect; uDropEffect=RegisterClipboardFormat("Preferred DropEffect"); hGblEffect=GlobalAlloc(GMEM_ZEROINIT|GMEM_MOVEABLE|GMEM_DDESHARE,sizeof(DWORD)); dwDropEffect=(DWORD*)GlobalLock(hGblEffect); if(bCopy) *dwDropEffect=DROPEFFECT_COPY; else *dwDropEffect=DROPEFFECT_MOVE; GlobalUnlock(hGblEffect); uDropFilesLen=sizeof(DROPFILES); dropFiles.pFiles =uDropFilesLen; dropFiles.pt.x=0; dropFiles.pt.y=0; dropFiles.fNC =FALSE; dropFiles.fWide =TRUE; uGblLen=uDropFilesLen+uBufLen*2+8; hGblFiles= GlobalAlloc(GMEM_ZEROINIT|GMEM_MOVEABLE|GMEM_DDESHARE, uGblLen); szData=(char*)GlobalLock(hGblFiles); memcpy(szData,(LPVOID)(&dropFiles),uDropFilesLen); szFileList=szData+uDropFilesLen; MultiByteToWideChar(CP_ACP,MB_COMPOSITE, lpBuffer,uBufLen,(WCHAR *)szFileList,uBufLen); GlobalUnlock(hGblFiles); if( OpenClipboard(NULL) ) { EmptyClipboard(); SetClipboardData( CF_HDROP, hGblFiles ); SetClipboardData(uDropEffect,hGblEffect); CloseClipboard(); }} CopyFile("c:\\test\\aaa.txt","d:\\aaa.txt",FALSE); 世界范围的网络,你我是怎样通信的 如何设计支持多线程的库 关于线程和进程的堆栈 softice安装问题 关于if的问题 error C2612: trailing 'shift operator' illegal in base/member 线程创建的CDialog无法显示? 把十进制的数转化成十六进制的函数是什么? c++要到什么程度才学习VC++ 如何屏蔽掉ESC键而不影响窗口关闭按钮的功能? 请问有没有人知道哪种视频采集卡比较好? 批处理文件中如何调用一个程序 m后 xxxx秒调用别的程序n
下边的源代码演示了如何将文本(包含在CString对象“source”中)拷贝到剪贴板上。CString source;
//put your text in source
if(OpenClipboard())
{
HGLOBAL clipbuffer;
char * buffer;
EmptyClipboard();
clipbuffer = GlobalAlloc(GMEM_DDESHARE, source.GetLength()+1);
buffer = (char*)GlobalLock(clipbuffer);
strcpy(buffer, LPCSTR(source));
GlobalUnlock(clipbuffer);
SetClipboardData(CF_TEXT,clipbuffer);
CloseClipboard();
}
反过来,下面的代码是用来实现从剪贴板上取得文本的。char * buffer = NULL;
//open the clipboard
CString fromClipboard;
if ( OpenClipboard() )
{
HANDLE hData = GetClipboardData( CF_TEXT );
char * buffer = (char*)GlobalLock( hData );
fromClipboard = buffer;
GlobalUnlock( hData );
CloseClipboard();
}
CFtpConnection::PutFile()
把本地文件放到server上这里有一个包装好的操作ftp的类
http://www.codeguru.com/Cpp/I-N/internet/ftp/article.php/c3439
LPCTSTR lpExistingFileName,
LPCTSTR lpNewFileName,
BOOL bFailIfExists
);
http://www.vckbase.net/document/viewdoc/?id=444VOID CutOrCopyFiles(char *lpBuffer,UINT uBufLen,BOOL bCopy)
{
UINT uDropEffect;
DROPFILES dropFiles;
UINT uGblLen,uDropFilesLen;
HGLOBAL hGblFiles,hGblEffect;
char *szData,*szFileList; DWORD *dwDropEffect; uDropEffect=RegisterClipboardFormat("Preferred DropEffect");
hGblEffect=GlobalAlloc(GMEM_ZEROINIT|GMEM_MOVEABLE|GMEM_DDESHARE,sizeof(DWORD));
dwDropEffect=(DWORD*)GlobalLock(hGblEffect);
if(bCopy)
*dwDropEffect=DROPEFFECT_COPY;
else
*dwDropEffect=DROPEFFECT_MOVE;
GlobalUnlock(hGblEffect); uDropFilesLen=sizeof(DROPFILES);
dropFiles.pFiles =uDropFilesLen;
dropFiles.pt.x=0;
dropFiles.pt.y=0;
dropFiles.fNC =FALSE;
dropFiles.fWide =TRUE; uGblLen=uDropFilesLen+uBufLen*2+8;
hGblFiles= GlobalAlloc(GMEM_ZEROINIT|GMEM_MOVEABLE|GMEM_DDESHARE, uGblLen);
szData=(char*)GlobalLock(hGblFiles);
memcpy(szData,(LPVOID)(&dropFiles),uDropFilesLen);
szFileList=szData+uDropFilesLen; MultiByteToWideChar(CP_ACP,MB_COMPOSITE,
lpBuffer,uBufLen,(WCHAR *)szFileList,uBufLen);
GlobalUnlock(hGblFiles); if( OpenClipboard(NULL) )
{
EmptyClipboard();
SetClipboardData( CF_HDROP, hGblFiles );
SetClipboardData(uDropEffect,hGblEffect);
CloseClipboard();
}
}