3

如果我有一个包含文件的完全限定名称的变量(例如,项目文件),应该调用它projectFileprojectFileName还是projectPath?或者是其他东西?

4

9 回答 9

7

我通常会选择这些:

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

我不认为有这样一个公认的标准。我取决于您(团队)的偏好以及您是否需要在特定情况下区分这三者。

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

  • 直观地说,“名称”是一个字符串,“路径”(和“文件名”)也是
  • “名称”是相对的,除非它是“全名”
  • 相关的变量名应该以相同的前缀(“File”+ ...)开头,我认为这提高了可读性
  • concretions/properties 是右分支的:“File”->“FileName”
  • 特化是左分支:“FileName”->“ProjectFileName”(或“ProjectFileFullName”)
  • “文件”是表示物理对象的对象/句柄,因此“项目文件”不能是字符串

我不能总是坚持这些约定,但我会努力。如果我决定使用特定的命名模式,我会保持一致,即使这意味着我必须编写更具描述性(= 更长)的变量名称。代码的阅读次数多于编写次数,因此额外的少量输入不会让我感到太多困扰。

于 2008-11-30T12:34:38.220 回答
2

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

于 2008-11-30T13:31:38.230 回答
1

您应该在它可能包含的文件之后为其命名,即:

system_configuration_file_URI
user_input_file_URI
document_template_file_URI

“文件”或“文件名”在其他方面大多无用

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

于 2008-11-30T12:35:38.327 回答
1

我认为对此没有共识,只是尽量保持一致。

.NET Framework 中的示例:

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

  • Assembly.LoadFrom(字符串程序集文件)

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

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

  • FileInfo.CopyTo(string destFileName)
于 2008-11-30T12:41:10.393 回答
1

一些想法:

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

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

于 2008-11-30T12:42:53.947 回答
1

请注意,“<a href="http://dictionary.reference.com/search?q=filename" rel="nofollow noreferrer">filename”是一个英文单词!标识符中间的“n”无需大写。

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

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

于 2008-11-30T13:27:51.717 回答
0

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

如果它们是类变量或在大型复杂方法中,则遵循 Kent Fredric 的建议,并为它们命名一个表明文件用途的名称,即“projectFileName”。

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

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

如果没有其他变量,例如“fileID”或“filePtr” ,则将其称为“file”就可以了。

所以,我会使用“文件夹”或“路径”来识别文件所在的目录。

而“fileID”则代表一个文件对象。

最后,“文件名”是文件的实际名称。

快乐编码,
兰迪

于 2008-11-30T12:37:21.273 回答
0

基于上述选择的答案,它们的含义模棱两可,并且没有被广泛接受的名称,如果这是一个请求文件位置的 .NET 方法,那么在 XML 注释中指定您想要的内容,以及一个示例,如如果其他开发人员不确定您想要什么,他们可以参考。

于 2008-11-30T13:18:34.577 回答
0

这取决于您的环境中使用的命名约定,例如在 Python 中,答案是projectpath由于os.path模块的命名约定。

>>> 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')
于 2008-11-30T15:08:04.683 回答