280 votes

Nom de fichier ? Nom de chemin d’accès ? Nom de la base ? Norme d’affectation de noms pour les pièces d’un chemin

Je reçois moi-même, en nœuds, quand je suis à la manipulation des chemins et noms de fichiers, parce que je n'ai pas de commune du système de nommage que j'utilise.

J'ai besoin de venir avec un standard de nommage et de s'y tenir, et je tiens à être clair et cohérent avec les autres, donc je suis de l'ouverture jusqu'à apprendre l'canonique réponses.

Considérer ce jouet problème: (Windows exemple, mais j'espère que la réponse devrait être indépendant de la plateforme)

Vous avez été donné le nom complet d'un dossier: C:\users\OddThinking\Documents\My Source. Vous voulez marcher sur les dossiers en dessous, et de compiler toutes les .src .obj.

À un certain moment vous êtes à la recherche à la chaîne suivante.

C:\users\OddThinking\Documents\My Source\Widget\foo.src

Donc, ce que l'identificateur de noms que vous utilisez pour les pièces?

A) foo
B) foo.src
C) src
D) .src
E) C:\users\OddThinking\Documents\My Source\ - i.e. the top of the tree.
F) Widget\foo.src - i.e. the path from the top of the tree to the leaf.
G) Widget - i.e. one node of the tree.
H) C:\users\OddThinking\Documents\My Source\Widget\ - i.e. the name of the folder
I) C:\users\OddThinking\Documents\My Source\Widget\foo.src

Permettez-moi de donner quelques réponses, pour vous aider à démarrer.

A) nom de base?

B) de nom de fichier? Ou est-il le nom du fichier? La différence est importante lors du choix d'identifiants, et je ne suis jamais compatibles ici.

C) Extension De

D) Prorogation. Attendez, c'est ce que j'ai appelé C. dois-je éviter de stocker le point, et il vous suffit de mettre en lorsque nécessaire? Que faire si il n'y a pas de point sur un fichier en particulier?

H) le nom de chemin d'accès? Ou attendre, c'est juste le chemin?

I) de nom de fichier. Attendez, c'est ce que j'ai appelé C. Chemin. Attendez, c'est ce que j'ai appelé H. Peut-être que H doit être le nom du dossier. N'est-ce pas "le dossier" Windows-terme spécifique, si?

214voto

blinry Points 1071

Je pense que votre recherche d'une "norme" convention de nommage sera en vain. Voici mes propositions, fondées sur des programmes bien connus.

A) C:\users\OddThinking\Documents\Ma Source\Widget\foo.src

Vim appelle racine du fichier (:nom de l'aide-modificateurs)

B) C:\users\OddThinking\Documents\Ma Source\Widget\foo.src

nom de fichier ou un nom de base

C) C:\users\OddThinking\Documents\Ma Source\Widget\foo.src

fichier (nom) extension de

D) C:\users\OddThinking\Documents\Ma Source\Widget\foo.src

Aussi l'extension de fichier. Il suffit de stocker sans le point, si il n'y a pas de point sur un fichier, il n'a pas d'extension.

E) C:\users\OddThinking\Documents\My Source\Widget\foo.src

(en haut de l'arbre)

Pas de convention, git appelle répertoire de base.

F) C:\users\OddThinking\Documents\Ma Source\Widget\foo.src

(chemin de la cime de l'arbre à la feuille)

chemin relatif

G) C:\users\OddThinking\Documents\Ma Source\Widget\foo.src

(un nœud de l'arbre)

Pas de convention, peut-être un simple répertoire.

H) C:\users\OddThinking\Documents\My Source\Widget\foo.src

dir nom

J') C:\users\OddThinking\Documents\My Source\Widget\foo.src

complet/chemin absolu

41voto

nawfal Points 13500

Bonne question, tout d'abord, mon +1. Cette chose m'énerve quand j'ai eu à créer un grand nombre de fonctions dans la classe Utilitaire une fois. GetFileName? ou GetFullName? GetApplicationPath signifie chemin d'accès complet ou le nom du répertoire? et ainsi de suite. Je viens d' .NET fond, donc je pense que je peux ajouter un peu plus d'ailleurs excellente réponse par @blinry.

Résumé: (En italique est ce que je ne voudrais pas utiliser en tant que programmeur)

  1. Path: Chemin d'accès spécifie un emplacement unique dans le système de fichiers (à moins que son chemin d'accès relatif). Nom de chemin d'accès qui est moins souvent utilisé, mais je m'en tiendrais à chemin - il assez bien explique ce que c'est. Chemin d'accès peut pointer vers un fichier ou un dossier ou même rien du tout (C:\). Chemin d'accès peut être:

    1. Chemin relatif: My Source\Widget\ est relatif chemin d'accès ainsi que Widget\foo.src. Auto-explicatif.
    2. Chemin d'accès absolu ou Chemin d'accès Complet: Est le chemin d'accès complet qui pointe vers la cible. J'ai tendance à utiliser le plus souvent. C:\users\OddThinking\Documents\My Source\Widget\foo.src est donc chemin d'accès complet. Voir à la fin ce que j'appelle le chemin d'accès complet à un fichier et qui se termine comme un répertoire.

    La page wiki et .NET les noms de chemin d'accès est conforme.

  2. Chemin de la racine ou de Répertoire Racine: l'Ancien est .NET de la convention, tandis que la seconde est plus entendu dans UNIX cercles. Bien que j'aime les deux, j'ai tendance à utiliser le plus ancien. Dans windows, contrairement à UNIX, a beaucoup de différents les chemins de la racine, un pour chaque partition. Les systèmes Unix ont un répertoire de racine qui contient de l'information sur d'autres répertoires et des fichiers. Par exemple. C:\ est du chemin de la racine.

  3. Dossier ou Dossier Nom: Widget, OddThinking etc dans votre cas. Cela pourrait être un Windows seulement de la convention (en fait sa ma propre bizarre de penser :)), néanmoins je suis de l'objet à blinry la réponse de "Répertoire". Mais pour un utilisateur normal répertoire de la même comme un dossier (comme les sous-dossiers, sous-dossiers), je crois à partir d'un angle technique, "répertoire" devrait ressembler à un qualifié adresse à la cible et non pas la cible elle-même. Plus ci-dessous.

    1. Les sous-Dossiers: à l'égard users OddThinking et Documents sont des sous dossiers.
    2. Les sous-Répertoires: à l'égard users OddThinking\, OddThinking\Documents\ et OddThinking\Documents\My Source\Widget\ sont des sous-répertoires. Mais nous n'avons pas souvent besoin de s'embêter à ce sujet, faites-nous?
    3. Dossier enfant: à l'égard users OddThinking est un dossier enfant (ainsi que les sous dossiers)
    4. Dossier Parent: Pour OddThinking users est le dossier parent (le simple fait de mentionner des terminologies différentes, pas une grosse affaire).
  4. Répertoire ou un Nom de Répertoire: Le premier pour l'utilisation dans la vraie vie, celle-ci doit être dans le code. Cela désigne le chemin d'accès complet (ou simplement le chemin d'accès complet) jusqu'à ce que la cible du dossier parent. Dans votre cas, C:\users\OddThinking\Documents\My Source\Widget (Oui un répertoire n'est jamais fait pour pointer vers un fichier). J'utilise le nom de répertoire dans mon code depuis le répertoire est une classe .NET et un Nom de Répertoire est-ce que la bibliothèque elle-même l'appelle. Son tout à fait cohérente avec dirname utilisé dans les systèmes UNIX.

  5. Nom de fichier ou un nom de base: le Nom du fichier avec l'extension. Dans votre cas: foo.src. Je dirais que pour un non techniques pour l'utilisation je préfère nom de fichier (c'est ce que signifie pour l'utilisateur final), mais pour des raisons techniques, je voudrais strictement avec basename. Nom de fichier est souvent utilisé par MS, mais je suis surpris de voir comment ils ne sont pas compatibles non seulement dans la documentation, mais même dans la bibliothèque. Il y a le nom de fichier peut être soit basename ou chemin d'accès complet du fichier. Donc, je suis en faveur de basename, c'est ce que j'appelle dans le code. Cette page sur le wiki dit aussi nom de fichier peut signifier soit le chemin d'accès complet ou le nom de base. Étonnamment, même dans .NET je peux trouver de l'utilisation basename à dire la racine du nom du fichier.

  6. L'Extension ou l' Extension de nom de fichier ou l'Extension de Fichier: j'aime bien la dernière. Tous se réfère à la même chose, mais qu'est-ce que c'est encore un sujet de débat! Wiki dit que c'est src alors qu'à l'époque, je me souviens avoir lu que beaucoup de langues interprète comme .src. Notez le point. Donc encore une fois de mon point de vue est, pour les occasionnels utilise, il n'a pas d'importance ce que c'est, mais en tant que programmeur, je vois toujours comme extension de .src.

    Ok j'ai peut-être essayé d'aller chercher de la norme usages, mais voici deux de mes conventions que j'ai suivi. Et c'est sur les chemins d'accès complets.

    1. J'ai fait appel généralement à un chemin d'accès complet vers un fichier en tant que chemin d'accès au fichier. Pour moi chemin d'accès au fichier est claire, il me dit ce que c'est. Si le nom de fichier je trouve que le nom de fichier, dans mon code je l'appelle du nom de fichier. Il est également compatible avec "nom du répertoire". Du côté technique, le nom fait référence au nom pleinement qualifié! Frustrant .NET utilise le terme de nom de fichier (j'ai donc mon cas ici) et parfois le chemin d'accès au fichier pour cette.

    2. J'appelle un chemin d'accès complet qui se termine comme un répertoire d'un répertoire. En fait on peut appeler n'importe quel morceau d'adresse qui ne pointe pas vers un fichier d'un répertoire. Donc, C:\users\OddThinking\Documents\My Source\ est un répertoire, C:\users\OddThinking\ est un répertoire, ou même OddThinking\Documents\My Source\ (il est mieux d'appeler le sous-répertoire ou encore mieux par rapport au chemin et tout ce qui dépend du contexte dans lequel vous faites affaire avec elle). Bien au-dessus je l'ai mentionné quelque chose de différent sur le répertoire qui est le nom du répertoire. Voici mon prendre sur elle: je vais prendre un nouveau chemin pour éviter la confusion. Qu'est-ce que c' D:\Fruit\Apple\Pip\? Un répertoire. Mais si la question est de savoir quel est le répertoire ou même mieux nom du répertoire D:\Fruit\Apple\Pip\, la réponse est D:\Fruit\Apple\. Espérons que c'est clair.

    Je dirais que c'est mieux de ne pas s'inquiéter de la finale deux termes car c'est ce qui créer le plus de confusion (pour moi personnellement). Utilisent le terme de chemin d'accès complet!

Pour vous répondre:

  1. avec respect pour le chemin que vous avez donné

    A) Aucune idée. De toute façon je n'ai jamais nécessaire pour obtenir qu'un seul.

    B) basename

    C) je viens de l'appeler une extension de fichier pour le moment, je suis moins inquiet car je n'ai jamais nécessaire que les seuls à être nommé dans mon code.

    D) l'extension de fichier sûrement.

    E) je ne pense pas que c'est un usage général exigence. Aucune idée. Dans .NET répertoire de base est le même que le nom du répertoire.

    F) chemin relatif

    G) dossier (dossier parent pour basename foo.src)

    H) le nom de répertoire

    I) le chemin complet (ou le même nom de fichier)

  2. en général (désolé d'être un peu verbeux, juste pour enfoncer le clou), mais en supposant foo.src est en effet un fichier

    A) NA

    B) basename

    C) NA

    D) extension de

    E) répertoire ou simplement le chemin d'accès

    F) chemin relatif

    G) NA

    H) répertoire ou simplement le chemin d'accès

    I) le chemin complet (ou le même nom de fichier)

Conduire avec un exemple de mon côté:

  1. Considérons le chemin de C:\Documents and Settings\All Users\Application Data\s.sql.

    1. C:\Documents and Settings\All Users\Application Data\s.sql est le chemin d'accès complet (qui est un fichier de nom)
    2. C:\Documents and Settings\All Users\Application Data\ est le nom du répertoire.
  2. Considérons maintenant le chemin de C:\Documents and Settings\All Users\Application Data

    1. C:\Documents and Settings\All Users\Application Data est le chemin d'accès complet (qui se trouve être un répertoire)
    2. C:\Documents and Settings\All Users est le nom du répertoire.

Deux conseils de la mine:

  1. J'ai suivi cette règle que lorsqu'il s'agit de s'adresser à une adresse complète, quel que soit son type, j'ai presque toujours l'appeler "chemin d'accès". Ce n'est pas seulement élimine l'utilisation de deux terminologies pour le chemin du fichier et le chemin d'accès au dossier, il permet aussi d'éviter le risque de confusion si vous allez pour le nom de fichier comme nom de fichier (qui, pour la plupart des utilisateurs immédiatement se traduit par basename). Mais oui, si vous avez d'être précis sur le type de trajectoire, de son mieux pour le nom de nom de fichier ou de répertoire au lieu de plus de générique de "chemin".

  2. Tout ce que vous auriez votre propre idée en tête, être cohérent avec l'ensemble. Avoir un consensus parmi les membres de l'équipe que cela signifie et pas que.

Maintenant que juste de le cercle, j'ai un peu de pratique. Une nouvelle marque de termes de ce qui est utilisé sur OS X et android machines. Et tous ces sommes sur le chemin d'accès au système de fichiers. Un ensemble complet de nouvelles terminologies, entraînerait des adresses web. J'attends quelqu'un pour combler le vide dans ce même thread :) je serais heureux d'entendre de la convention avec qui vous aller de l'avant..

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X