VC

下記のようなパス文字列からフォルダを自動作成する(/xxx/yyy/zzzは存在しない)

/home/user1/xxx/yyy/zzz
bool CreateDirectory( const char *szDirectoryPath , int iDirPermission = 0744 )
{
    if ( NULL == szDirectoryPath )
    {
        return false;
    }

    const int iPathLength = static_cast< int >( strlen( szDirectoryPath ) );

    if ( iPathLength > PATH_MAX )
    {
        return false;
    }

    char szPathBuffer[ PATH_MAX ] = { 0 };

    memcpy( szPathBuffer , szDirectoryPath , iPathLength );

    for ( int i = 0 ; i < iPathLength ; ++i )
    {
        char &refChar = szPathBuffer[ i ];
        //目录分隔符
        if ( ( '/' == refChar ) && ( 0 != i ) )
        {
            refChar = '\0';
            //判断当前目录是否存在
            int iStatus = access( szPathBuffer , F_OK );
            if ( 0 != iStatus )
            {
                if ( ( ENOTDIR == errno ) || ( ENOENT == errno ) )
                {
                    //以指定权限创建目录
                    iStatus = mkdir( szPathBuffer , iDirPermission );
                    if ( 0 != iStatus )
                    {
                    return false;
                    }
                }
                else
                {
                    return false;
                }
            }
        refChar = '/';
        }
    }
    return true;
}


ウィジェット型CM動画配信サービス manna [マナ]

コメント:



(画像の文字列を入力して下さい)

トップ   編集 凍結 差分 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2019/12/02 (月) 12:43:24 (1627d)

PCpዾyǗlgĂ܂}WŔ܂z 萔O~ył񂫁z Yahoo yV NTT-X Store

z[y[W ̃NWbgJ[h COiq ӂ邳Ɣ[ COsیI COze