A 回答 (3件)
- 最新から表示
- 回答順に表示
No.3
- 回答日時:
> Permission denied
って文句たれてるんで、自分がそこには入れないディレクトリだったりしません?
お手数ですが、
・使っているOS
・実行時の操作
(シェルのコマンドラインから実行しているとか、cron経由で起動してるとか)
を説明してもらえますか?
> /ファイルパス/ 行番号 54.
まあ本当の名前そのまま書かないでもいいんですが、
この54行目でエラーになっているというファイルはどんなファイルですか?
自分で作った(File::Findを使っている)スクリプトのファイルですか?
それとも別の何かですか?
まず適当な作業ディレクトリに移って、
そこで3段くらいのディレクトリ構造と幾つかのダミーファイルを置いてみて、
シェルからスクリプトを実行して正しく動作するか確認してみてください。
ありがとうございます。
実行する形はCGIファイル(index.cgi)としてサーバーにアップしています。
ファイルアクセスして実行します。
また、エラーが発生する時はディレクトリのパスを通し、且つfind(\&wanted ~)を記入したときのみ発生していましたので、やはりアクセス権限などに関わるかと思われます。
しかし、ディレクトリに関してはこちらの所有でありパーミッションも777に設定したにもかかわらずエラーが発生しています。
もしかしたら僕が使用しているサーバーのPerlのバージョンがFile::Findに対応していないのかと、考えていますが
原因は不明でいます。
エラーに関しましてはindex.cgiファイル内の54行目で起こっていると記述されています。
しかし、54行目は特にディレクトリ探索に絡むようなスクリプトでは無いため、ただ単純に誤認と考えています。
--------------------------------------------
#-- ディレクトリを指定(複数の指定可能) --#
@directories_to_search = ('./');
#-- 実行 --#
find(\&wanted, @directories_to_search);
--------------------------------------------
懇切にアドバイスありがとうございました。
File::Findのエラーは解決できませんでしたが、別の方法を用いて
無事解決致しました。
ただ、このエラーは気になる所ではありますのでもう少し検討してみようと思います。
No.2
- 回答日時:
まあモジュール使うのがお手軽だと思うんですが、自前でやるなら
あるディレクトリのサイズ合計を求める手順を関数にし、
readdir でそのディレクトリに属するエントリを取得して
一つ一つチェックしていって、ファイルだったらサイズ加算
ディレクトリが見つかったらそこで自分自身を(見つかったディレクトリを引数にして)
呼び出すという感じですね。
ありがとうございます。
このページ(http://katsubemakito.net/cgiperl/directory/perl2 …)を参照し、File::Find;を使用したのですが、結果として『Can't cd to : Permission denied
Compilation failed in require at /ファイルパス/ 行番号 54.
』と表示されてしまいます。
find(\&wanted, @directories_to_search);と実行するとエラーが発生します。
エラー画面にディレクトリとファイル一覧が表示されていましたから、動作はしていると考えられますが、エラーの原因がわからずにいます・・・
No.1
- 回答日時:
1. 地道に再帰的に処理する
2. 地道に繰り返しで処理する
3. File::Find
回答ありがとうございます。
更に質問でもうしわけないのですが、どのようにして実現できるのでしょうか。
$dir = "test";
opendir(DIR, "$dir");
@ls = readdir(DIR);
closedir(DIR);
でディレクトリを@lsに格納し
foreach $line (@ls) {
$filesize = (-s $dir.'/'.$line);
$totalsize = $totalsize + $filesize;
}
でファイルの合計を出す。
if ($totalsize > $max) {
$caution = "ファイルサイズオーバーです。";
}
後は、前もって定めた容量を超えていたらメッセージを出す。
しかし、これだけでは$dirの階層しか読まれないため、
具体的にどのように組めばわからずにいます。
初心な質問ですみませんが、よろしくお願いします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(プログラミング・Web制作) 図に示す階層構造で,現在のディレクトリ(カレントディレクトリという)が*印のディレクトリであるとき, 2 2022/11/16 10:55
- Perl Perlで特定文字列から特定文字列までを抜き出したい 4 2022/04/02 14:24
- Perl Perl の外部モジュールの利用方法 3 2022/07/10 18:34
- その他(開発・運用・管理) 【至急】.htaccessによるディレクトリ単位でのリダイレクト 2 2023/08/10 13:46
- PDF PDFに精通した方に質問。JPEGファイル群を一つのPDFファイルにするときの容量変化について 6 2023/07/23 19:06
- CGI CGIが読み書きするデータファイルのパーミッションはさくらのインターネットでは何にするべき? 1 2023/05/02 16:44
- WordPress(ワードプレス) WordPressのサイトにPDFをアップロードした際にGoogleなどの検索結果に出ないでほしい 1 2022/08/03 10:44
- PHP ファイルアップロードに関してのセキュリティについてアドバイスお願い致します 1 2023/08/20 00:25
- USBメモリー・SDカード・フラッシュメモリー ファイルをコピーできない 5 2022/09/23 10:38
- Windows 10 2件の中断されたアクション 予期しないエラーのため、ファイルを削除できません。 このエラーが再発する 1 2022/03/27 19:33
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・「みんな教えて! 選手権!!」開催のお知らせ
- ・漫画をレンタルでお得に読める!
- ・「黒歴史」教えて下さい
- ・2024年においていきたいもの
- ・我が家のお雑煮スタイル、教えて下さい
- ・店員も客も斜め上を行くデパートの福袋
- ・食べられるかと思ったけど…ダメでした
- ・【大喜利】【投稿~12/28】こんなおせち料理は嫌だ
- ・前回の年越しの瞬間、何してた?
- ・【お題】マッチョ習字
- ・モテ期を経験した方いらっしゃいますか?
- ・一番最初にネットにつないだのはいつ?
- ・好きな人を振り向かせるためにしたこと
- ・【選手権お題その2】この漫画の2コマ目を考えてください
- ・2024年に成し遂げたこと
- ・3分あったら何をしますか?
- ・何歳が一番楽しかった?
- ・治せない「クセ」を教えてください
- ・【大喜利】【投稿~12/17】 ありそうだけど絶対に無いことわざ
- ・【選手権お題その1】これってもしかして自分だけかもしれないな…と思うあるあるを教えてください
- ・集合写真、どこに映る?
- ・自分の通っていた小学校のあるある
- ・フォントについて教えてください!
- ・これが怖いの自分だけ?というものありますか?
- ・スマホに会話を聞かれているな!?と思ったことありますか?
- ・それもChatGPT!?と驚いた使用方法を教えてください
- ・見学に行くとしたら【天国】と【地獄】どっち?
- ・これまでで一番「情けなかったとき」はいつですか?
- ・この人頭いいなと思ったエピソード
- ・あなたの「必」の書き順を教えてください
- ・10代と話して驚いたこと
- ・14歳の自分に衝撃の事実を告げてください
- ・人生最悪の忘れ物
- ・あなたの習慣について教えてください!!
- ・都道府県穴埋めゲーム
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
テキストファイルで提出とは?
-
perlで2次元配列をサブルーチ...
-
perlをバージョンアップしたら...
-
perl の open について教えてく...
-
openした後、closeしないでプロ...
-
Perl言語について。
-
ファイルをディレクトリ分配の...
-
アルファベットに付いて質問し...
-
#!/usr/bin/perlで書きだしたCG...
-
Perlのエラーについてご教授く...
-
perlのflock関数でロックをかけ...
-
AI sisterとは、偽物の人ですか?
-
bashスクリプト
-
ファイルアイコンの左下に緑の□...
-
perlプログラミング 空白行削除
-
perlでリテラル値はメモリにど...
-
Perlで時間の計算
-
perlについて
-
perlのrequireの動き方について...
-
perlの構文でカンマの意味が分...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ディレクトリ名の変更
-
コマンドプロンプトからperlを...
-
perlからのexcel読み込み
-
エラーログ「\\x8ew\\x92\\xe8...
-
perl上からfindを使い検索した...
-
Perl で ディレクトリ及びサブ...
-
VBAでCSVファイルを途中行まで...
-
VBAでCSVファイルの特定行を書...
-
エクセルVBA コードが同じでも...
-
ExcelをCSV書き出す場合のシー...
-
batファイルでrenameができませ...
-
awkスクリプトでダブルクォーテ...
-
Windowsで複数のファイルを同じ...
-
DOSコマンドで、標準出力を出力...
-
C言語で特定の行を抽出する方法...
-
Perlで特定行から特定行までを...
-
close()で例外が投げられる理由
-
readdir()で得られるファイル・...
-
python renameについて
-
openした後、closeしないでプロ...
おすすめ情報