下記のようなパス文字列からフォルダを自動作成する(/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 [マナ] コメント: |