私はそれが PHP でもできることを知っていますし、Java でもできると確信しています。私は最新バージョンの .NET を使用したことがないので、それらについては説明しません。非常に厄介なように思えますが、これには根本的な理由があるのではないかと考えていました。
4 に答える
3
理由の 1 つは互換性です。「存在の確認」を行った人は、ディレクトリを除外することを知っています。その行動を変えることは、その行動に頼っている人を混乱させるかもしれません。
第 2 に、基礎となるコードは、多くの場合、オペレーティング システムでファイル システム エントリのカタログに存在するかどうかをチェックします。OS にとって、ディレクトリはファイルと同じです。つまり、カタログ内の「xyz」という名前のファイルではなく、カタログ内の「xyz」のエントリを探しています。
下位互換性が主な理由だと思います。
于 2008-09-08T16:59:51.947 に答える
2
于 2008-09-08T17:08:02.287 に答える
1
「ファイルが存在する」関数を使用して、パスに書き込む前にパスをチェックするのが一般的です。この使用例では、ファイルのタイプは関係ありません。「/home/foo」というディレクトリがある場合、「/home/foo」というファイルを作成することはできません</p>
また、あなたが言及した言語の1つであるPHPは、関心のあるファイルの種類に応じていくつかの機能を提供します。
file_exists()
ファイル、ディレクトリ、およびシンボリック リンクに対して TRUE を返します。is_file()
ファイルの場合はTRUEを返しますが、ディレクトリとシンボリックリンクの場合はFALSEを返しますis_dir()
ディレクトリに対してTRUEを返しますが、ファイルとシンボリックリンクに対してFALSEを返しますis_link()
シンボリック リンクの場合は TRUE を返しますが、ファイルとディレクトリの場合は FALSE を返します。
于 2008-09-08T17:06:29.340 に答える
0
Unix の哲学の一部は、「すべてはファイルである」というものです。これは、他の環境にもある程度影響を与えています。
于 2012-02-22T00:49:46.727 に答える