我斗辩写了一个。
界面一个文本框两个按钮,文本框关联一个CString型变量m_Data,设置属性为Vertical scroll和Want return。
两个按钮对应举瞎的读写函数分别如下
void CFileTxtDlg::OnRead()
{
// TODO: Add your control notification handler code here
CFileDialog fDlg(TRUE)
fDlg.m_ofn.lpstrFilter = "Text Files(*.txt)\0*.txt\0\0"
if(fDlg.DoModal() == IDOK)
{
CStdioFile stdFile
stdFile.Open(fDlg.GetPathName(), CFile::modeRead | CFile::typeBinary)
DWORD fileLen = 正销空stdFile.GetLength()
char *pBuf = new char[fileLen + 1]
pBuf[fileLen] = 0
stdFile.Read(pBuf, fileLen)
UpdateData()
m_Data = pBuf
UpdateData(FALSE)
delete pBuf
stdFile.Close()
}
}
void CFileTxtDlg::OnWrite()
{
// TODO: Add your control notification handler code here
UpdateData()
CFileDialog fDlg(FALSE)
fDlg.m_ofn.lpstrFilter = "Text Files(*.txt)\0*.txt\0\0"
fDlg.m_ofn.lpstrDefExt = "txt"
if(IDOK == fDlg.DoModal())
{
CStdioFile stdFile
stdFile.Open(fDlg.GetPathName(), CFile::modeCreate | CFile::modeWrite | CFile::typeBinary)
stdFile.WriteString(m_Data)
stdFile.Close()
}
}
如要源代码发消息
其中hDireetory为使用CreateFile函数为指定路径生成文件的句柄;lpBuffer为用于存储返回的文件访问信息的缓冲区
的指针;nBufferLength为以字节为单位的缓冲区的大小;
bWatchSubtree用于指定是否监控子文件夹,如果传人TRUE
则表示监控子文件夹;dwNotifyFiher用键纯于指定监控的动作,例
如FILE NOTIFY_CHANGE_FILE_NAME表示监控文件重命名
这一动作,可迅段以使用“I’,来组合多个这样的值,这样就能满
足几乎所有的监控需求;lpBytesReturned用于在同步调用中指
定传入lpBuffer的字节数,而在异步状态下传人NULL值即
可;lpOvedapped为指向OVERLAPPED结构的指针,仅在异
步调用中使用;最后一个参稿昌咐数是指向OVERLAPPED_COM—
PLETION_ROUTINE的指针,简单地传人NULL即可。
在线程函数中需要做的就是在一个while循环中循环调用
ReadDirectoryChanges函数,然后通过lpBuffer返回的文件访
问信息判断文件具体被如何改动了,然后通过不同安全级别
下的策略来实施文件保护 *** 作。在此系统中主要拦截了4种
件、修改文件和重命名文件,分别通过Action的4种取值
nI卫一ACTION ADDED、FILE-ACrn0N—REMOVED、F1LE_AC一
"l ION_MODI兀ED、nLE—ACllON RENAMED_OLD—NAME来区
别。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)