ファイル (たとえば、プロジェクト ファイル) の完全修飾名を含む変数を取得した場合、それをprojectFile
、projectFileName
またはと呼ぶ必要がありますprojectPath
か? または、他の何か?
9 に答える
私は通常、これらを使用します:
FileName
ファイル名のみ (パスなし)FilePath
親パスのみ (ファイル名なし)FileFullName
パス付きの完全修飾名
私は、これについて受け入れられた基準のようなものはないと思います。私はあなたの(チームの)好みと、特定の状況で3つを区別する必要があるかどうかに依存します.
編集:これらの特定の命名規則に関する私の考えは次のとおりです。
- 直感的に、「名前」は文字列であり、「パス」(および「ファイル名」) も同様です。
- 「フルネーム」でない限り、「名前」は相対的です
- 関連する変数名は同じプレフィックス(「ファイル」+ ...)で始まる必要があります。これにより読みやすさが向上すると思います
- concretions/properties は右分岐です: "File" -> "FileName"
- 特殊化は左分岐です: "FileName" -> "ProjectFileName" (または "ProjectFileFullName")
- 「ファイル」は物理オブジェクトを表すオブジェクト/ハンドルであるため、「ProjectFile」を文字列にすることはできません
私は常にこれらの慣習に固執できるわけではありませんが、そうしようとしています。特定の命名パターンを使用することにした場合、たとえそれがより説明的な (= 長い) 変数名を書かなければならないことを意味するとしても、一貫性があります。コードは書くことよりも読むことが多いので、多少の余分なタイピングはあまり気にしません。
System.IO.Pathは、ファイルの完全修飾名を、、path
ファイル自体の名前を、、それfilename
に含まれるディレクトリを。として参照しているようdirectory
です。projectPath
System.IO.Pathのコンテキストで使用している場合は、この命名法に最も一致していることをお勧めします。次に、ファイルの名前をとして参照し、fileName
ディレクトリを含むものをとして参照しますparentDirectory
。
「<a href="http://dictionary.reference.com/search?q=filename" rel="nofollow noreferrer">filename」は英語で1 単語であることに注意してください。識別子の途中にある「n」を大文字にする必要はありません。
Filename
つまり、ファイル名を含むすべての文字列変数に追加します。ただし、ファイルとディレクトリのタイプをサポートする言語で厳密に型指定された変数を使用することを優先して、このシナリオ全体を回避しようとしています。結局のところ、これが拡張型システムの目的です。
厳密に型指定された言語では、変数の型と使用法がその内容を推測するため、(特に関数の引数では) 説明的な接尾辞は不要なことがよくあります。
含まれている可能性のあるファイルの後にタイトルを付ける必要があります。つまり、次のようになります。
system_configuration_file_URI
user_input_file_URI
document_template_file_URI
それ以外の場合、「ファイル」または「ファイル名」はほとんど役に立ちません
また、「ファイル」はあいまいな「私はファイルポイントです」を意味する可能性があり、「ファイル名」はコンテキスト(つまり、ディレクトリ)を持っているかどうかを述べていません。観察されると、リソース(ファイル)を指します」
これについてコンセンサスがあるとは思いませんが、一貫性を保つようにしてください。
.NET Framework の例:
FileStream(文字列パス...);
Assembly.LoadFrom(string assemblyFile)
XmlDocument.Load(文字列ファイル名)
ファイル名の大文字小文字 (filename / fileName) でさえ、フレームワーク内で一貫性がありません。たとえば、次のようになります。
- FileInfo.CopyTo(string destFileName)
いくつかの考え:
projectFile
文字列ではない可能性があります。ファイルの解析済みコンテンツを表すオブジェクトである可能性があります。projectFileName
完全に認定されていない可能性があります。ファイルが実際にである場合"D:\Projects\MyFile.csproj"
、これには"MyFile.csproj"
.projectPath
ファイルへの完全修飾パスと見なされるか、ファイルを含む親フォルダーの名前と見なされる場合があります。projectFolder
親フォルダーの名前を保持していると見なされるか、実際にFolder
はコード内のある種の抽象化の実装である可能性があります。
.NET はpath
、ファイルを参照するために を使用することもあれば、 を使用することもありますfilename
。
上記の選択肢の意味が曖昧であり、広く受け入れられている名前がないという回答に基づいて、これがファイルの場所を要求する .NET メソッドである場合は、次のように XML コメントで必要なものを指定します。別の開発者が、あなたが何を望んでいるのか不明な場合は、それを参照できます。
これはすべて、メソッドのサイズと、変数がクラス変数であるかどうかに部分的に依存します。
それらがクラス変数または大規模で複雑なメソッド内にある場合は、Kent Fredric のアドバイスに従い、ファイルの用途を示す名前を付けます(例: "projectFileName")。
これがたとえばファイルを削除する小さなユーティリティ メソッドである場合は、「projectFileName」という名前を付けないでください。その場合は、単に「ファイル名」と呼んでください。
それが入っているフォルダーを参照していることを意味するため、「パス」という名前は決して付けません。
「fileID」や「filePtr」などの別の変数がなければ、「file」と呼んでも問題ありません。
したがって、「フォルダー」または「パス」を使用して、ファイルがあるディレクトリを識別します。
そして、ファイルオブジェクトを表す「fileID」。
最後に、ファイルの実際の名前の「filename」。
ハッピーコーディング、
ランディ
環境で使用されている命名規則によって異なります。たとえば、Python では、答えはos.pathモジュールprojectpath
の命名規則によるものです。
>>> import os.path
>>> path = "/path/to/tmp.txt"
>>> os.path.abspath(path)
'c:\\path\\to\\tmp.txt'
>>> os.path.split(path)
('/path/to', 'tmp.txt')
>>> os.path.dirname(path)
'/path/to'
>>> os.path.basename(path)
'tmp.txt'
>>> os.path.splitext(_)
('tmp', '.txt')