本文整理汇总了C++中CFileFind::Close方法的典型用法代码示例。如果您正苦于以下问题:C++ CFileFind::Close方法的具体用法?C++ CFileFind::Close怎么用?C++ CFileFind::Close使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类CFileFind
的用法示例。
在下文中一共展示了CFileFind::Close方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: FindExtensions
void InformApp::FindExtensions(void)
{
m_extensions.clear();
for (int i = 0; i < 2; i++)
{
CString path;
switch (i)
{
case 0:
path.Format("%s\\Internal\\Extensions\\*.*",(LPCSTR)GetAppDir());
break;
case 1:
path.Format("%s\\Inform\\Extensions\\*.*",(LPCSTR)GetHomeDir());
break;
default:
ASSERT(FALSE);
break;
}
CFileFind find;
BOOL finding = find.FindFile(path);
while (finding)
{
finding = find.FindNextFile();
if (!find.IsDots() && find.IsDirectory())
{
CString author = find.GetFileName();
if (author == "Reserved")
continue;
if ((author.GetLength() > 0) && (author.GetAt(0) == '.'))
continue;
path.Format("%s\\*.*",(LPCSTR)find.GetFilePath());
CFileFind find;
BOOL finding = find.FindFile(path);
while (finding)
{
finding = find.FindNextFile();
if (!find.IsDirectory())
{
CString ext = ::PathFindExtension(find.GetFilePath());
if (ext.CompareNoCase(".i7x") == 0)
m_extensions.push_back(ExtLocation(author,find.GetFileTitle(),(i == 0),find.GetFilePath()));
else if (ext.IsEmpty() && (i == 1))
{
// Rename an old-style extension (with no file extension) to end with ".i7x"
CString newPath = find.GetFilePath();
newPath.Append(".i7x");
if (::MoveFile(find.GetFilePath(),newPath))
m_extensions.push_back(ExtLocation(author,find.GetFileTitle(),(i == 0),newPath));
}
}
}
find.Close();
}
}
find.Close();
}
std::sort(m_extensions.begin(),m_extensions.end());
}
示例2: DeleteDir
BOOL CMyUtils::DeleteDir(LPCTSTR lpDirPath)
{
CFileFind finder;
BOOL bFind;
TCHAR strFindPath[MAX_PATH];
_stprintf(strFindPath, _T("%s\\*"), lpDirPath);
bFind = finder.FindFile(strFindPath);
while (bFind)
{
bFind = finder.FindNextFile();
if (!finder.IsDirectory())
{
if (!DeleteFile(finder.GetFilePath()))
{
finder.Close();
return FALSE;
}
}
else if (!finder.IsDots())
{
if (!DeleteDir(finder.GetFilePath()))
{
finder.Close();
return FALSE;
}
}
}
finder.Close();
return RemoveDirectory(lpDirPath);
}
示例3: DeleteRecord
/**********************************************************************
* 函数名称: // DeleteRecord()
* 功能描述: // 删除多余的log文件,保存的个数可以通过SetLogRecordCount改变
* 输入参数: // 无
* 输出参数: // 无
* 返 回 值: // 返回True
* 其它说明: // 无
* 修改日期 版本号 修改人 修改内容
* -----------------------------------------------
* 2009/07/21 V1.0
***********************************************************************/
BOOL CLogRecord::DeleteRecord()
{
CString strFile;
CFileFind finder;
BOOL bWorking;
int nfileNum = 0;
strFile.Format("%s\\*.log",m_strCurrentRecordPath);
bWorking = finder.FindFile(strFile);
while (bWorking)
{
bWorking = finder.FindNextFile();
nfileNum++;
}
finder.Close();
if(nfileNum >m_nRecordLogCount)
{
nfileNum = nfileNum-m_nRecordLogCount;
bWorking = finder.FindFile(strFile);
while (bWorking&&nfileNum)
{
bWorking = finder.FindNextFile();
nfileNum--;
DeleteFile(finder.GetFilePath());
}
}
finder.Close();
return TRUE;
}
示例4: directoryDelete
BOOL directoryDelete( LPCTSTR lpstrDir)
{
CFileFind cFinder;
CString csPath;
BOOL bWorking;
try
{
csPath.Format( _T( "%s\\*.*"), lpstrDir);
bWorking = cFinder.FindFile( csPath);
while (bWorking)
{
bWorking = cFinder.FindNextFile();
if (cFinder.IsDots())
continue;
if (cFinder.IsDirectory())
directoryDelete( cFinder.GetFilePath());
else
DeleteFile( cFinder.GetFilePath());
}
cFinder.Close();
return RemoveDirectory( lpstrDir);
}
catch (CException *pEx)
{
cFinder.Close();
pEx->Delete();
return FALSE;
}
}
示例5: OnBnClickedShatter
// 粉碎按钮消息
//
void CTool::OnBnClickedShatter()
{
// TODO: 在此添加控件通知处理程序代码
// 如果文件路径不是有效的,则不做响应
CFileFind fileFind;
if(!fileFind.FindFile(m_FilePath))
{
MessageBox("不是有效的文件路径!", "提示", MB_OK);
fileFind.Close(); // 关闭文件查找,释放资源
return;
}
fileFind.Close(); // 关闭文件查找,释放资源
// 设置文件属性(取消只读属性)
if(!CSystemController::FileAttributesOperation(m_FilePath))
{
MessageBox("文件属性设置失败!", "提示", MB_OK);
return;
}
::EnableWindow(m_Shatter, FALSE); // 粉碎按钮变灰色且不可用
// 创建线程,并返回句柄
HANDLE hThread = CreateThread(NULL, 0, MyShatterThread, this, 0, NULL);
// 如果线程创建失败则返回
if(hThread == NULL)
{
MessageBox("线程创建错误!","提示",MB_OK);
return;
}
}
示例6: HasSubdirectories
bool CDirectoryTreeCtrl::HasSubdirectories(CString strDir)
{
strDir += _T("*.*");
CFileFind finder;
BOOL bWorking = finder.FindFile(strDir);
while (bWorking)
{
bWorking = finder.FindNextFile();
if (finder.IsDots())
continue;
if (finder.IsSystem())
continue;
if (!finder.IsDirectory())
continue;
finder.Close();
return true;
}
finder.Close();
return false;
}
示例7: ExportReg
BOOL CRegConfig::ExportReg(LPCTSTR pszFileName)
{
if (pszFileName == NULL)
{
return FALSE;
}
CWaitCursor wait;
CFileFind find;
if (find.FindFile(pszFileName))
{
if (!DeleteFile(pszFileName))
{
find.Close();
return FALSE;
}
}
find.Close();
int nSectionLen = sizeof(g_chSection) / sizeof(g_chSection[0]);
for (int i = 0; i < nSectionLen; ++i )
{
if (!SaveRegToConfig(g_chSection[i], pszFileName))
return FALSE;
}
return TRUE;
}
示例8: GetChildFolders
void CMyExplorerDoc::GetChildFolders(CStringArray *strFolderList, CString strParentFolder)
{
// MFC에서 지원되는 파일 검색 객체
CFileFind ff;
if (strParentFolder.Right(1) != '\\')
{
strParentFolder += '\\';
}
strParentFolder += "*.*";
// 주어진 경로의 파일을 찾음
if (ff.FindFile(strParentFolder) == TRUE)
{
BOOL bFlag = TRUE;
while(bFlag == TRUE)
{
// 파일이 존재할 경우 다음 파일을 찾을수
// 있도록 해준다.
bFlag = ff.FindNextFile();
// 파일이 디렉토리이면 0이 아닌 수를 리턴
// 파일이 '.' 또는 '..'이면 0이 아닌 수를 리턴
if (ff.IsDirectory() && !ff.IsDots())
strFolderList->Add(ff.GetFileName());
}
}
ff.Close();
}
示例9: ScanFile
void MusicUtils::ScanFile(CString Dir,CArray<CString,CString&>& filearray,CString filetype)
{
CFileFind finder;
CString Add=L"\\*";
CString DirSpec=Dir+Add; //补全要遍历的文件夹的目录
BOOL bWorking = finder.FindFile(DirSpec);
while (bWorking)
{
bWorking = finder.FindNextFile();
if(!finder.IsDots()) //扫描到的不是节点
{
if(finder.IsDirectory()) //扫描到的是文件夹
{
CString strDirectory = finder.GetFilePath();
ScanFile(strDirectory,filearray,filetype); //递归调用ScanFile()
}
else //扫描到的是文件
{
CString strFile = finder.GetFilePath(); // 得到文件的全路径
CString ext = GetFileTitleFromFileName(strFile).MakeLower();
if (ext==CString("bmp"))
{
filearray.Add(strFile);
}
//进行一系列自定义操作
}
}
}
finder.Close();
}
示例10: GetRootPoint
int KGObjectPropertyEditDlg::GetRootPoint(CString szPath)
{
int nResult = false;
int nRetCode = false;
CFileFind file;
BOOL bContinue = file.FindFile(szPath + "*");
KG_PROCESS_ERROR(szPath != "");
int temp = 0;
while (bContinue)
{
bContinue = file.FindNextFile();
if (file.IsDirectory() && !file.IsDots())
{
if (temp == 0)
{
m_treeRoot = m_treeObjectView.InsertItem(file.GetFileName());
temp = 1;
}
else
{
m_treeObjectView.InsertItem(file.GetFileName());
}
}
}
nResult = true;
Exit0:
file.Close();
return nResult;
}
示例11: DeletePath
void Utils::DeletePath(CString sPath)
{
CFileFind tempFind;
bool IsFinded = tempFind.FindFile(sPath + "\\*.*");
while (IsFinded)
{
IsFinded = tempFind.FindNextFile();
//当这个目录中不含有.的时候,就是说这不是一个文件。
if (!tempFind.IsDots())
{
char sFoundFileName[200];
strcpy(sFoundFileName,tempFind.GetFileName().GetBuffer(200));
//如果是目录那么删除目录
if (tempFind.IsDirectory())
{
char sTempDir[200];
sprintf(sTempDir,"%s\\%s",sPath,sFoundFileName);
DeletePath(sTempDir); //其实真正删除文件的也就这两句,别的都是陪衬
}
//如果是文件那么删除文件
else
{
char sTempFileName[200];
sprintf(sTempFileName,"%s\\%s",sPath,sFoundFileName);
DeleteFile(sTempFileName);
}
}
}
tempFind.Close();
RemoveDirectory(sPath);
}
示例12: ShowDB
void ShowDB()
{
CFileFind finder;
int iRowN = 0;
int iNameLen = 0,iTemp = 0;
std::cout<<"These are the databases !\n";
int bWorking = finder.FindFile("..\\Data\\*.*");
std::cout<<"~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"<<'\n';//<---计32个字符
std::cout<<"| Database |"<<'\n';
std::cout<<"~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"<<'\n';//<---计32个字符
while(bWorking)
{
bWorking = finder.FindNextFile();
if (finder.IsDots())
continue;
if (finder.IsDirectory())
{
iRowN++;
CString str = finder.GetFileTitle();
iNameLen = str.GetLength();
std::cout <<"| "<< (LPCTSTR) str;
for(iTemp = 29 - iNameLen;iTemp != 0;iTemp--)
std::cout<<' ';
std::cout <<"|"<<'\n';
}
}
std::cout<<"~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"<<'\n';//<---计32个字符
std::cout<<"There are" <<iRowN<<" rows in the database!";
finder.Close();
}
示例13: rmDir
BOOL FileUtils::rmDir(string dirName)
{
char sTempFileFind[MAX_PATH] = "";
sprintf_s(sTempFileFind, "%s\\*.*", dirName.c_str());
CFileFind tempFind;
BOOL isFinded = tempFind.FindFile(sTempFileFind);
while (isFinded) {
isFinded = tempFind.FindNextFile();
/*
* 跳过 每个文件夹下面都有的两个特殊子文件夹:
* (1) . 表示本文件夹自己
* (2) .. 表示本文件夹的父文件夹
*/
if (!tempFind.IsDots()) {
char tempFileOrDir[MAX_PATH] = "";
sprintf_s(tempFileOrDir, "%s\\%s", dirName.c_str(), tempFind.GetFileName().GetBuffer(MAX_PATH));
if (tempFind.IsReadOnly()) ::SetFileAttributes(tempFileOrDir, FILE_ATTRIBUTE_NORMAL);
if (tempFind.IsDirectory()) rmDir(tempFileOrDir);
else ::DeleteFile(tempFileOrDir);
}
}
tempFind.Close();
return ::RemoveDirectory(dirName.c_str());
}
示例14: MFCFileFind
void MFCFileFind(CString strPath){
CFileFind find;
BOOL bRet = find.FindFile(strPath+"/*.*");
//FindFile只能获取到是否有该文件
while(bRet){
//得到当前文件信息,并返回下一个文件是否存在
bRet = find.FindNextFile();
CString strName=find.GetFileName();
if(find.IsDirectory()){
printf("目录:%s\n",strName);
//CString 直接可以在%s中打印
#if 1
if(!find.IsDots()){
MFCFileFind(strPath+"/"+strName);
//也可以使用GetFilePath
}
#endif
}
else{
printf("文件:%s\n",strName);
}
}
find.Close();
}
示例15: AddSubdirectories
void CDirectoryTreeCtrl::AddSubdirectories(HTREEITEM hRoot, CString strDir)
{
strDir += _T("*.*");
CFileFind finder;
BOOL bWorking = finder.FindFile(strDir);
while (bWorking)
{
bWorking = finder.FindNextFile();
if (finder.IsDots())
continue;
if (finder.IsSystem())
continue;
if (!finder.IsDirectory())
continue;
CString strFilename = finder.GetFileName();
int iIdx;
if ((iIdx = strFilename.ReverseFind('\\')) != -1)
strFilename = strFilename.Mid(iIdx + 1);
AddChildItem(hRoot, strFilename);
}
finder.Close();
}