最新写了一个程序,里头学到来了不少关于文件的操作,下面列举出来。
下面是关于字符串复制到粘贴板的操作:
void CDownlistBuilderDlg::OnBnClickedButtonCopy()
{
CString m_str;
m_str=_T("这就是要复制的文字");
if(OpenClipboard())
{
HGLOBAL clipbuffer;
char *buffer;
EmptyClipboard();
clipbuffer=GlobalAlloc(GMEM_DDESHARE,m_str.GetLength()+1);
buffer=(char *)GlobalLock(clipbuffer);
USES_CONVERSION;
LPCSTR a=T2A(m_str.GetBuffer(m_str.GetLength()));
m_str.ReleaseBuffer();
strcpy(buffer,a);
GlobalUnlock(clipbuffer);
SetClipboardData(CF_TEXT,clipbuffer);
CloseClipboard();
}
}
下面是关于粘贴板复制到字符串的操作:
void CDownlistBuilderDlg::OnBnClickedButtonPaste()
{
CString m_str;
m_str=_T("");
char *buffer=NULL;
CString fromClipboard;
if(OpenClipboard())
{
HANDLE hData=GetClipboardData(CF_TEXT);
char *buffer=(char*)GlobalLock(hData);
fromClipboard=buffer;
m_str=m_str+fromClipboard;
GlobalUnlock(hData);
CloseClipboard();
}
}
下面是关于文件保存的操作:
void CDownlistBuilderDlg::OnBnClickedButtonSave()
{
CFileDialog *lpszOpenFile;//定义一个CfileDialog对象
CString m_str;
CString str;
m_str=_T("这是保存在文件里的字符串");
str=_T("");
str.Format(_T("%ld"),time(NULL));//默认的文件名
lpszOpenFile = new CFileDialog(FALSE,_T(""),str,OFN_FILEMUSTEXIST |OFN_HIDEREADONLY,_T("文件类型1(*.type1)|*.type1|文件类型2(*.type2)|*.type2||"));//生成一个对话框
if(lpszOpenFile->DoModal()==IDOK)//假如点击对话框确定按钮
{
CString path;
path=lpszOpenFile->GetPathName();//得到打开文件的路径
///
CStdioFile File;
File.Open(path,CFile::modeCreate|CFile::modeReadWrite);
File.WriteString(m_str);
File.Close();
//这一部分是文件保存,将字符串m_str保存在path确定的文件中
///
}
delete lpszOpenFile;//释放分配的对话框
}
下面是关于读取拖拽文件内容的操作:
void CDownlistBuilderDlg::OnDropFiles(HDROP hDropInfo)
{
CString m_str;
m_str=_T("");
CString str;
str=_T("");
CString filename,filetype;
TCHAR filePath[MAX_PATH]={0};
DragQueryFile(hDropInfo,0,filePath, MAX_PATH-1);
filename=filePath;
//filetype=filePath;
//filename=filename.Right(filename.GetLength()-filename.ReverseFind('\\')-1);
//得到文件名(带扩展名),如果需要去掉扩展名,继续处理即可
//filetype=filetype.Right(filename.GetLength()-filename.ReverseFind('.')-1);
//得到扩展名
//filename=filename.Left(filename.GetLength()-filetype.GetLength());
//得到文件名(不带扩展名)
/
CStdioFile File;
File.Open(filePath,CFile::modeRead);
while(File.ReadString(str))
{
m_str=m_str+str+_T("\r\n");
}
File.Close();
//这一部分是读取文件内容到字符串m_str中
/
DragFinish(hDropInfo);//释放拖放占用内存,必须!
CDialogEx::OnDropFiles(hDropInfo);
}