2008-09-08 8 views

Répondre

3

L'une des raisons est la compatibilité - quiconque a fait 'vérifier l'existence' sait exclure les répertoires; changer ce comportement peut confondre ceux qui s'appuient sur ce comportement.

Deuxièmement, le code sous-jacent effectue souvent une vérification sur le système d'exploitation pour existence dans un catlog des entrées du système de fichiers - pour le système d'exploitation, un répertoire est le même qu'un fichier. En d'autres termes, il cherche une entrée de 'xyz' dans le catalogue pas un fichier avec le nom 'xyz' dans le catalogue.

La compatibilité vers l'arrière est la raison principale, je soupçonne.

1

Il est courant d'utiliser une fonction "fichier existe" pour vérifier un chemin avant d'y écrire. Dans ce cas d'utilisation le type de fichier n'est pas pertinent, s'il y a un répertoire appelé "/ home/foo" vous ne pourrez pas créer un fichier appelé "/ home/foo"

Aussi PHP, l'un des langues que vous avez mentionné, fournit plusieurs fonctions selon le type (s) du fichier que vous aimez:

  • file_exists() retournera TRUE pour les fichiers, répertoires et liens symboliques
  • is_file() retournera TRUE pour les fichiers, mais FAUX pour répertoires et liens symboliques
  • is_dir() retournera TRUE pour directorie s, mais FALSE pour les fichiers et sym liens
  • is_link() retourne vrai pour les liens symboliques, mais FALSE pour les fichiers et les répertoires
2

Il y a aussi une raison formelle pourquoi un répertoire est un fichier:

Les fichiers (ou liens vers des fichiers) peuvent être situés dans des répertoires. Cependant, plus généralement, un répertoire peut contenir soit une liste de fichiers ou une liste de liens vers des fichiers. Au sein de cette définition , il est primordial que le terme «fichier» comprenne des répertoires . Cela permet l'existence de hiérarchies de répertoires, , c'est-à-dire des répertoires contenant des sous-répertoires .

de Wikipédia, ‘Computer file’

0

Une partie de la philosophie Unix est que "everything is a file". Cela a également influencé d'autres environnements dans une certaine mesure.

Questions connexes