プログラマ ずんべ の日記

zunbe

プログラマ ずんべ の日記
プログラマ ずんべ の日記

探し物は見つかりましたか? サイト内検索を試してください。

(その5) 「エスケープする」の意味がわからない? (その5) 「エスケープする」の意味がわからない? 久しぶりにDVDを購入 久しぶりにDVDを購入

2005/08/01

【若いモンの発想はわからん】(その6) なんでCHDIRしてるの?

今日も、こんなことがあった。

簡単なバックアップ・プログラムを社員に書かせたのだが、バックアップ対象とするファイルを取得するのに、以下の様な指示を出した。

(1).バックアップの対象はファイルのみ。
  シンボリックリンクなどは対象としない。

社員が書いたプログラムは、こうだ。

-----
$folder = '/hoge';

chdir($folder);

opendir(FOLDER, $folder);
@files = ();
while (defined($file = readdir(FOLDER))
{
  next if (! -f $file);
  push(@files, $file);
}
closedir(FOLDER);
-----

ちょっと待て、何で chdir なんかしてるんだよ。
社員に聞いてみると、こうのたまう。

ファイルかどうかの検査を -f で行っているのですが、うまくできませんでしたので、この様にしました。

当たり前だろう。
readdir で返ってくるのはファイル名だけだ。
パスを加えて -f をしなければ、正しく動作するはずがないではないか。
それを解決するために、chdir するとは、いったいどういう発想やねん。

若いモンの発想はわからん。



このエピソードはいかがでしたか?

投稿者 zunbe : 2005/08/01 20:27:19


コメント

 なんというか、コメントのしようがないですね・・・。


 実行時のディレクトリの問題って、意外と見落としがちなんですよね・・・。
 Windows アプリ作るときなど、バグの原因になったりしますよね。

 そういう「経験」が足りてない、ということなんでしょうか。
 

投稿者 GOTTi : 2005/08/01 23:56:37


コメントしてください






保存しますか?


スパム対策:
この入力フィールドに「23」と入力してください。


プログラマ ずんべ の日記:ずばヒット アマゾン