CGI-BBS > 基礎 > その他 > mkpathについて


カレッヂ
カレッヂ


質問者 シー  投稿日 1/30(火) 18:56:10
何層かあるディレクトリを一気に作成したくて
mkpathを使用してみました。

    @pathdata_dir=$data_dir;
    mkpath(\@pathdata_dir,1,0777);

上記のように書いたのですが、これが動作するとプリント文があるわけでもないのに、

mkdir ./testdata/mode1/shokushu5 mkdir ./testdata/mode1/shokushu5/chiiki0 mkdir ./testdata/mode1/shokushu5/chiiki0/kyuyo0

と実行したテキストが表示されてしまいます。
これを回避する方法はないでしょうか。
また他に、いいやり方がありますでしょうか?

もしよろしければご指導いただければと思います。
どうぞよろしくお願いいたします。








回答者 まさ  [削除]  投稿日 1/30(火) 22:10:40
mkpath(\@pathdata_dir,1,0777);
これは
mkpath(\@pathdata_dir);
こうですね。
これで表示されません。

また一度に深いディレクトリーを作成するならば、File::Pathモジュールを使った方が
いいです。詳しくはCPAN等を参考にして下さい。
回答者 まさ  [削除]  投稿日 1/31(水) 07:57:09
ついでにCPANの検索結果です。
http://search.cpan.org/search?mode=module&query=File%3A%3APath
質問者 シー  [削除]  投稿日 1/31(水) 10:36:48
まささん、丁寧なご指導ありがとうございました。

たしかに後ろの引数2つをとると表示されなくなりました。
しかし後ろの引数はどんな意味があるのかと思って
教えていただいたCPANのリンク先にいったところ、
最後の引数はやはりパーミッションですね。
そして真中の1が、表示するかどうかのフラグなのでしょうか?
これを0にすると表示しなくなりました。

引数を消すとデフォルト値(2番目の引数=0、最後の引数=0777)
になるようです。
なにぶん英文なのでおそらくという範囲ですが。

CPANという存在はまったく知りませんでした。
ありがとうございました。

またなにかありましたらどうぞよろしくお願いいたします。

このページは終了したので返信(回答)は書きこめません

Web裏技