命名包含文件名的变量?

时间:2008-11-30 12:27:55

标签: language-agnostic naming-conventions

如果我有一个包含文件的完全限定名称的变量(例如,项目文件),那么它应该被称为projectFileprojectFileName还是projectPath ?或其他什么?

9 个答案:

答案 0 :(得分:7)

我通常会选择这些:

  • FileName仅限文件名(无路径)
  • FilePath仅用于父路径(没有文件名)
  • FileFullName表示路径为
  • 的完全限定名称

我认为没有这样的事情可以接受。我取决于您(团队)的偏好以及您是否需要在给定情况下区分这三者。

编辑:我对这些特定命名约定的看法是:

  • 直观地说,“Name”是一个字符串,所以是“Path”(和“FileName”)
  • “名称”是相对的,除非它是“FullName”
  • 相关变量名称应以相同的前缀(“文件”+ ...)开头,我认为这样可以提高可读性
  • 具体结果/属性是右分支:“文件” - > “文件名”
  • 专业化是左分支:“FileName” - > “ProjectFileName”(或“ProjectFileFullName”)
  • “文件”是表示物理对象的对象/句柄,因此“ProjectFile”不能是字符串

我不能总是坚持这些惯例,但我努力。如果我决定使用特定的命名模式,即使这意味着我必须编写更多描述性(=更长)的变量名称,我仍然保持一致。代码更经常被阅读而不是书面,因此额外的打字不会给我带来太多麻烦。

答案 1 :(得分:2)

System.IO.Path似乎将文件的完全限定名称称为path,文件本身的名称称为filename,其包含的目录为directory 。我建议在你的情况下,如果你在System.IO.Path的上下文中使用,projectPath最符合这个术语。然后我将文件名称称为fileName,它包含的目录为parentDirectory

答案 2 :(得分:1)

你应该在它可能包含的文件后标题,即:

system_configuration_file_URI
user_input_file_URI
document_template_file_URI

“file”或“filename”在其他方面大多无用

此外,“文件”可能意味着“我是一个文件点”,这是不明确的,“文件名”没有说明它是否有上下文(即:目录),fileURI是上下文明确的,因为它说“这是资源标识符,在观察时,指向资源(文件)“

答案 3 :(得分:1)

我认为对此没有达成共识,只是努力保持一致。

.NET Framework中的示例:

  • FileStream(字符串路径...);

  • Assembly.LoadFrom(string assemblyFile)

  • XmlDocument.Load(字符串文件名)

甚至文件名(filename / fileName)的大小也在框架中不一致,例如:

  • FileInfo.CopyTo(string destFileName)

答案 4 :(得分:1)

一些想法:

  • projectFile可能不是字符串 - 它可能是表示文件解析内容的对象。
  • projectFileName可能不完全合格。如果该文件实际上是"D:\Projects\MyFile.csproj",则可能需要包含"MyFile.csproj"
  • projectPath可能被视为文件的完全限定路径,或者可能被视为包含该文件的父文件夹的名称。
  • projectFolder可能被认为是保存父文件夹的名称,或者它实际上可能是代码中某种Folder抽象的实现。

.NET有时会使用path来引用文件,有时会使用filename

答案 5 :(得分:1)

请注意,“filename”在英语中是一个单词!没有必要将标识符中间的“n”大写。

也就是说,我将Filename附加到包含文件名的所有字符串变量中。但是,我试图避免这种情况,而是支持在支持一种文件和目录的语言中使用强类型变量。毕竟,这个那些可扩展类型的系统。

在强类型语言中,通常不需要描述性后缀(特别是在函数参数中),因为变量类型和用法会推断其内容。

答案 6 :(得分:0)

所有这一切部分取决于方法的大小以及变量是否为类变量。

如果它们是类变量或大型复杂方法,请遵循Kent Fredric的建议,并将其命名为 该文件的用途,即“projectFileName”。

如果这是一个小实用程序方法,比如删除文件,则不要将其命名为“projectFileName”。简单地称它为“文件名”然后。

我永远不会将其命名为“path”,因为这意味着它指的是它所在的文件夹

将其称为“文件”即可,如果还没有其他变量,例如“fileID”或“filePtr”。

因此,我会使用“folder”或“path”来标识文件所在的目录。

和“fileID”代表文件对象。

最后,“filename”表示文件的实际名称。

快乐编码,
好色

答案 7 :(得分:0)

根据选项的上述答案含义不明确且没有广泛接受的名称,如果这是一个请求文件位置的.NET方法,那么在XML注释中指定你想要的内容,以及例如,如果他们不确定您想要什么,另一位开发人员可以参考。

答案 8 :(得分:0)

这取决于您环境中使用的命名约定,例如在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')