1. 程式人生 > >MFC: 獲取可執行文件目錄 + 寫日誌函數

MFC: 獲取可執行文件目錄 + 寫日誌函數

file filename turn close std director seek cti ctime

獲取可執行文件目錄
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( "\r\n" ) );//換行
    file.Flush();
    file.Close();
}

MFC: 獲取可執行文件目錄 + 寫日誌函數