MFC获取指定文件夹文件目录

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MFC获取指定文件夹文件目录相关的知识,希望对你有一定的参考价值。

我想获取某个驱动器(不定)下的文件夹中的文件,在MFC中怎么获取。求例子。X:\A\B\C(获取C文件夹中的文件)

在MFC中,使用CFileFind类,可以枚举一个目录下的所有文件和子目录。

示例:

void ListFolder(const CString & sPath)

    CFileFind ff;   
    BOOL bFound = ff.FindFile(sPath + "\\\\*.*");
    while(bFound)
    
        bFound = ff.FindNextFile();
        if(ff.IsDirectory())  //是目录
        
            if(!ff.IsDots()) //不是本级目录或父目录(.和..)
                ListFolder(ff.GetFilePath()); //递归子目录
        
        else
        
            AfxMessageBox("文件:" + ff.GetFilePath());
        
    
    ff.Close();

参考技术A 原型:
int WINAPI icePub_getPathList(char *strCurrentPath,char *strPathList,int maxLen,int flag)
输入:strCurrentPath 待搜索路径名
maxLen strPathList最大长度
flag 信息标志,0 只文件名,1 文件长度
输出:strPathList 带全路径文件名

char buffer[1024*10+1];

typedef int (WINAPI ICEPUB_GETPATHLIST)( char *strCurrentPath,char *strPathList,int maxLen,int flag);
ICEPUB_GETPATHLIST *icePub_getPathList = 0;
HINSTANCE hDLLDrv = LoadLibrary("icePubDll.dll");
if(hDLLDrv)

icePub_getPathList = (ICEPUB_GETPATHLIST *)GetProcAddress(hDLLDrv, "icePub_getPathList");


if(icePub_getPathList != NULL)

int a;
buffer[0]=0;
a=icePub_getPathList("X:\\A\\B\\C",buffer,1024*10,1);
AfxMessageBox(buffer);

if(hDLLDrv)
FreeLibrary(hDLLDrv);
参考技术B CFileFind finder;
BOOL isfind=finder.FindFile(“X:\\A\\B\\C”);
while(finder.FindNextFile())

CString file= finder.GetFileTitle();//你要的文件名
参考技术C 请参考我之前的贴子,实现的其实是一样的功能:
http://zhidao.baidu.com/question/336666591.html

MFC: 获取可执行文件目录 + 写日志函数

获取可执行文件目录

inline CString GetExeDir()
{
    TCHAR szPath[ MAX_PATH ] = { 0 };
    GetModuleFileName( NULL, szPath, MAX_PATH );

    CString csFullPath( szPath );
    int nPos = csFullPath.ReverseFind( _T( ‘\‘ ) );
    if( nPos < 0 )
        return CString( "" );
    else
        return csFullPath.Left( nPos );
}

写日志函数

#include <locale> 

inline void WriteLog( const CString& strLog )
{   
    setlocale( LC_CTYPE, ( "chs" ) );//写入中文

    CTime tm = CTime::GetCurrentTime();
    CString strLogDir = GetExeDir() + "/Log/" + tm.Format( "%Y-%m" );
    if( !PathIsDirectory( strLogDir ) )
        CreateDirectory( strLogDir, 0 );

    CString strFilePath = strLogDir + tm.Format( "/Sensitive-%Y-%m-%d.txt" );   
    CString strLogText = tm.Format( "[%Y-%m-%d %H:%M:%S]: " ) + strLog;

    CStdioFile  file;
    BOOL bOpen = file.Open( strFilePath, CFile::modeCreate | CFile::modeReadWrite | CFile::modeNoTruncate );
    if( !bOpen )
        return;
    file.SeekToEnd();
    file.WriteString( strLogText );
    file.WriteString( _T( "
" ) );//换行
    file.Flush();
    file.Close();
}

以上是关于MFC获取指定文件夹文件目录的主要内容,如果未能解决你的问题,请参考以下文章

MFC - 打开执行文件

MFC中怎样实现通过点击按钮而打开对话框选择文件,并将选择的txt文件内容导入到Listcontrol控件指定的列中。

Python获取指定目录下的所有文件路径获取指定目录下所有文件名(但是不包含子目录中文件名)获取指定目录下所有pdf文件名(但是不包含子目录中pdf文件名)

Python获取指定目录下的所有文件路径获取指定目录下所有文件名(但是不包含子目录中文件名)获取指定目录下所有pdf文件名(但是不包含子目录中pdf文件名)

MFC怎么查找当前目录以及子目录下的*_DS.TXT文件?

C#如何遍历指定目录以及指定目录下所有子文件夹,并获取除指定文件类型以外的所有文件的绝对路径?