#-------------------------------------------------------------------- # 多階層ディレクトリ作成 # 概要 多階層にわたるディレクトリの作成(mkdir)を一度に実行 # 形式 &MultiMkdir( $newdir ); # 引数 $newdir : in : 作成するディレクトリ #-------------------------------------------------------------------- sub main'MultiMkdir { my ( $temp, $pos );
local ( $newdir ) = @_;
do { $temp = $newdir; while ( 1 ) { $! = 0; mkdir( $temp, 0755 ); if ( $! == 0 || $! == 17 ) { # Normal or File Exist last; } elsif ( $! == 2 ) { # No such file or directory $pos = rindex( $temp, "\\" ); last if ( $pos <= 0 ); $temp = substr( $temp, 0, $pos ); } else { die "$main'me multi_mkdir : mkdir error : $!\n"; } } } until ( $temp eq $newdir ); }
|