7

经过多年的编程,仍然有一些简单的事情让我感到困惑。

是否有普遍认可的文件名定义?

甚至维基百科的文章也混淆了这两种解释。

它首先将其定义为“一种特殊的字符串,用于唯一标识存储在计算机文件系统上的文件”。这似乎很清楚,并表明文件名是完全限定的文件名,指定文件的完整路径。

然而,它接着是:

  • 谈论基本名称和扩展名(所以基本名称将包含绝对路径?)
  • 说DOS中文件名的长度限制为8.3
  • 表示没有路径部分的文件名被假定为当前工作目录中的文件(因此文件名不能唯一标识文件)

所以,简单的问题:

  • 什么是“文件名”的正确定义(包括参考)
  • 我应该如何明确地命名变量:
    • 文件的路径(可以是绝对/完整或相对)
    • 可以是文件/目录/套接字的资源的路径
4

4 回答 4

9

没有参考,只是经验的白话。当我具体时,我倾向于使用:

pathfilespec(或文件规范):标识文件系统上的文件所需的所有字符。路径可以是绝对路径(从根目录或最顶层目录开始)或相对路径(从当前活动目录开始)。

filename:标识当前目录中的文件所需的字符。

extension: 文件名末尾的字符,通常标识文件的类型。按照惯例,扩展名通常以点(“.”)开头,一个文件名可能包含多个扩展名。

basename:文件名直到(但不包括)开始第一个扩展名的点。

于 2008-11-11T12:47:15.790 回答
0

File.getName() 方法的 Javadoc

于 2008-11-11T12:46:43.810 回答
0

file·name 也是文件名
(fīl'nām') 发音键 n。赋予计算机文件以区别于其他文件的名称,通常包含按类型对其进行分类的扩展名。

@字典网

它指出文件名用于命名文件(就像您命名一个人一样)。并且它用于将其与其他文件区分开来。这不会告诉您它包含路径或其他文件系统强加的属性。该定义确实表明文件名通常具有扩展名。不过这个定义很仔细……(我觉得是好事)

所以..在你开始考虑路径等之前,你必须设置你的范围。你在一个unix世界吗?你在dos/windows世界吗?

于 2008-11-11T12:50:12.210 回答
0

同样没有参考,但文件名规范取决于操作系统或更准确的文件系统。让我们从早期版本的 DOS(磁盘操作系统)开始。文件名是包含数字、字母、破折号和下划线的 8 个字符名称。它们后面是用于标识文件类型的三、二、一甚至零字符扩展名。一个点将名称与扩展名分开。该名称在目录中必须是唯一的。

您可以通过添加目录名称或一系列目录名称来扩展名称。斜线字符将目录名称与文件名分开。这通常被称为路径名。路径是相对于当前目录的。

最后,在 DOS 中,您可以包含驱动器名称。通常一个字母后跟一个 : 和一个斜杠(某些系统是两个斜杠)。将驱动器添加到路径使其成为绝对路径而不是相对路径。

今天,我们大多数人都使用不遵循旧的 8 字符点三字符模式的长文件名。仍然有许多文件系统保留了诸如名称之类的名称,并仅将长名称用作指向旧样式标识符的指针。

于 2008-11-11T13:18:38.503 回答