zoukankan      html  css  js  c++  java
  • 开源项目BNBT可用于其他项目中的文件操作部分

    View Code
    #include "stdafx.h"
    #include 
    <string.h>
    #include 
    <iostream>
    #include 
    "time.h"
    using namespace std;


    void UTIL_LogPrint( const char *format, ... )
    {

        ::OutputDebugString(format);
    }
    void UTIL_DeleteFile( const char *szFile )
    {
        
    if( unlink( szFile ) == 0 )
            UTIL_LogPrint( 
    "deleted \"%s\"\n", szFile );
        
    else
        {
    #ifdef WIN32
            UTIL_LogPrint( 
    "error deleting \"%s\"\n", szFile );
    #else
            UTIL_LogPrint( 
    "error deleting \"%s\" - %s\n", szFile, strerror( errno ) );
    #endif
        }
    }


    void UTIL_MakeFile( const char *szFile, string strContents )
    {
        FILE 
    *pFile = NULL;

        
    if( ( pFile = fopen( szFile, "wb" ) ) == NULL )
        {
            UTIL_LogPrint( 
    "warning - unable to open %s for writing\n", szFile );

            
    return;
        }

        fwrite( (
    void *)strContents.c_str( ), sizeofchar ), strContents.size( ), pFile );
        fclose( pFile );
    }

    bool UTIL_CheckFile( const char *szFile )
    {
        
    // check if file exists

        FILE 
    *pFile = NULL;

        
    if( ( pFile = fopen( szFile, "r" ) ) == NULL )
            
    return false;

        fclose( pFile );

        
    return true;
    }


    string UTIL_ReadFile( const char *szFile )
    {
        FILE 
    *pFile = NULL;

        
    if( ( pFile = fopen( szFile, "rb" ) ) == NULL )
        {
            UTIL_LogPrint( 
    "warning - unable to open %s for reading\n", szFile );

            
    return string( );
        }
        UTIL_LogPrint( 
    "open %s for reading\n", szFile );

        fseek( pFile, 
    0, SEEK_END );
        unsigned 
    long ulFileSize = ftell( pFile );
        fseek( pFile, 
    0, SEEK_SET );
        
    char *pData = (char *)malloc( sizeofchar ) * ulFileSize );
        memset( pData, 
    0sizeofchar ) * ulFileSize );
        fread( (
    void *)pData, sizeofchar ), ulFileSize, pFile );
        fclose( pFile );
        
    string strFile( pData, ulFileSize );
        free( pData );

        
    return strFile;
    }


    void UTIL_MoveFile( const char *szFile, const char *szDest )
    {
        
    if( UTIL_CheckFile( szDest ) )
            UTIL_LogPrint( 
    "error archiving \"%s\" - destination file already exists\n", szDest );
        
    else
            UTIL_MakeFile( szDest, UTIL_ReadFile( szFile ) );

        
    // thanks MrMister

        UTIL_DeleteFile( szFile );
    }

    void UTIL_CopyFile( const char *szFile, const char *szDest )
    {
        
    if( UTIL_CheckFile( szDest ) )
            UTIL_LogPrint( 
    "error archiving \"%s\" - destination file already exists\n", szDest );
        
    else
            UTIL_MakeFile( szDest, UTIL_ReadFile( szFile ) );

    }


    string UTIL_GetLocalTimeString()//edited 不保证跨平台性

    {
        time_t rawtime;
        
    struct tm * timeinfo;
        time ( 
    &rawtime );
        timeinfo 
    = localtime ( &rawtime ); 
        
    char year[5];
        
    char mon[3];
        
    char day[3];
        
    char hour[3];
        
        
    char min[3];
        
    char sec[3];

        strftime(year,
    5,"%Y",timeinfo);
        strftime(mon,
    3,"%m",timeinfo);
        strftime(day,
    3,"%d",timeinfo);
        strftime(hour,
    3,"%H",timeinfo);
        strftime(min,
    3,"%M",timeinfo);
        strftime(sec,
    3,"%S",timeinfo);
         
        
    string timestr;
        timestr.append(year);
        timestr.append(mon);
        timestr.append(day);
        timestr.append(hour);
        timestr.append(min);
        timestr.append(sec);

        
    return timestr;
    }

    void CreateDir(const char *DirPath)//edited 不保证跨平台性
    {
        CreateDirectory(DirPath,NULL);
    }
  • 相关阅读:
    linux hosts文件详+mac主机名被莫名其妙修改
    WPF整理--动态绑定到Logical Resource
    WPF整理-使用逻辑资源
    WPF整理-自定义一个扩展标记(custom markup extension)
    WPF整理-XAML访问静态属性
    WPF整理-为控件添加自定义附加属性
    WPF整理-为User Control添加依赖属性
    使用MS Test进行单元测试
    WPF整理-XAML构建后台类对象
    毕业那点事儿--回顾在大学这7年
  • 原文地址:https://www.cnblogs.com/no7dw/p/2050381.html
Copyright © 2011-2022 走看看