文件名(FILE NAME)

 

1.文件名发展历史

1962年 为了兼容时分系统,便引入了文件的概念,与此同时,作为区分文件拓展名的点(dot),也几乎同时出现。

传统的文件系统中,文件名只允许数字和字母,但是随着时间,允许加入的符号也变多了,这就影响了文件从一个系统到另一个系统的兼容性问题。

1985年RFC 官方就指定,为了识别某个文件,必须将路径名定义成字符串加到文件系统当中。

1995年前,因8.3FILENAME (SFN,Short File Name)只提供8位短型文件名,因此在1995年提出了一种LongFile Name 文件系统(VFAT, Virtual File Allocate Table)

2.文件名的引用

文件的引用包括:绝对引用,以及相对的引用。

绝对的引用:涵盖系统所有目录。

相对引用则只会引用当前的工作路径中的文件,这种相对引用的优点使得不同的程序可以引用不同的文件。

这种相对与绝对的路径构成了一系列的文件名。

3.同一文件的文件名个数

在类Unix文件系统中,允许一个文件包含多个文件名。但在传统的unix系统中,文件名跟文件的inod或者先关程序是硬连接的(理解为一对一的连接过程)。

多文件名(可理解为原文件名的别名)应用举例,以VFAT为基础的LFNs允许文件的多个文件名

如将"long file name.???"改写成"longfi~1.???",以此缩短了文件名长度从而使文件可以兼容到早些年8.3filename(SFN,Short File Name)的文件系统中的应用程序当中。

4.文件名字符长度

不同的文件系统支持不同长度的文件名。而受限的文件名长度,主要是跟文件系统分配的文件名存储空间大小有关,因此并不是越大的存储空间越好,因为在增加存储空间的同时,会引起兼容性问题以及意味着更多的空间将被占用。

5.文件名的扩展名

文件名被分为文件基础名跟文件的扩展名。文件的扩展名用于应用程序的识别,而同一个应用程序生成的多个文件,其扩展名是相同的。

6.文件名编码的通用性

因为文件在系统中的存储、应用程序中的调用、网络中的传输、数据的压缩存档、文件的配置等等都会根据文件名来进行操作,因此文件名的编码通用性极其重要。

传统的文件名,允许在文件系统安全的情况下可以起任意的文件名,但是当这本地文件出现在其他的系统中时,由于系统差异(编码方式的差异),这可能就将出现一些互操作性问题。

为了解决文件名编码通用性的问题目前提出的解决办法有:

1. 引入了Unicode的概念(统一了编码方式,目前最普遍)

2. 使得文件名的代码转换透明化

3. 存储非标准的文件名

4. 给予文件名不同的权重,以此避免相同权重文件名的文件出现在相同的目录当中。

7.独一性

同一个目录下,每个文件的文件名必须是独一无二的。不同路径下,可能有相同文件名的文件存在。

8.字母大小写问题

在不同的文件系统当中,对文件名字母的大小写处理可能也存在差异。

如FAT文件系统,不区分字母格式大小写,Unix系统则区别文件名字母的大小写。

9.保留的字符和保留的文件名.

不同的文件系统对应保留的文件名都不同。

在Unicode成为行业标准前,有的文件系统只支持其应用场景下的字符文件名,而另一部分文件系统,除了支持Unicode所规定的字符,还支持其他一些额外的符号文件名。

FILE NAME(filename)文件名的理解相关推荐

  1. input file multiple获取文件名

    input file multiple获取文件名(以分号分隔) <!DOCTYPE html> <html>     <head>         <meta ...

  2. ERROR:can’t read “File Watch(fileName)”:no such element in array

    ERROR:can't read "File Watch(fileName)":no such element in array 在安装Quartus的过程中出现如下错误,原因是使 ...

  3. js修改上传文件(File)的文件名

    之前文章我们已经讲述了如何将网络图片转化为本地图片,传送门: https://blog.csdn.net/a1056244734/article/details/120261134 转好之后还需要有上 ...

  4. scala -cp file.jar filename的案例

    一.新建scala类,如图所示: 二.用scalac编译文件到指定的classes目录中,如图所示: 包括 HelloWorld与BeautifluGirl两个大类 最终class目录内容如下 : 然 ...

  5. 统计了300课时的代码,得到学Python需要掌握的1024个英语单词

    对话框回复「导航」获取历史推送 与非学堂 专注青少年信息技术教育,探讨少儿编程的教与学,交流技巧.分享资源. 一批孩子学业有成,一批新人又开始成长. ​ 曹老师对之前的同学学过的300课Python代 ...

  6. Java动态拼接SQL--02--Jpa

    本篇进行Spring-data-jpa的介绍,几乎涵盖该框架的所有方面,在日常的开发当中,基本上能满足所有需求.这里不讲解JPA和Spring-data-jpa单独使用,所有的内容都是在和Spring ...

  7. [Python学习] 专题四.文件基础知识

            前面讲述了函数.语句和字符串的基础知识,该篇文章主要讲述文件的基础知识(与其他语言非常类似). 一. 文件的基本操作         文件是指存储在外部介质(如磁盘)上数据的集合.文件 ...

  8. struts2上传多文件(b)

    UploadUtil.java<br>------------------- /**  * 上传文件,名称以日期命名  *  * @author Administrator  */ pub ...

  9. 程序员专业常用英语词汇

    A Absolute 绝对 Access 存取 Access time 存取时间 Accompanying 陪同,伴随 According to 根据 Accuracy 准确性 Acquire 获得 ...

最新文章

  1. 前端面试instanceof_面试造火箭,看下这些大厂原题
  2. program的发展史与两个数学方法
  3. 高并发C/S的TCP版本golang实现
  4. 计算机设备管理系统报告,设备管理信息化自查报告
  5. php 获取字符串中的url,php使用正则表达式获取字符串中的URL
  6. 安全认证传输服务器介绍
  7. 树形结构 —— 并查集
  8. is not a function_libcxx 的 std::function 源码分析
  9. mysql加密复制_MySQL主从复制使用SSL加密
  10. 51nod 1275 连续子段的差异(twopointer+单调队列)
  11. Dell R410服务器查看系统raid级别
  12. mysql中grade字段降序排列_Mysql order by 多个字段排序
  13. 《数据算法:Hadoop_Spark大数据处理技巧》艾提拉笔记.docx 第1章二次排序:简介 19 第2章二次排序:详细示例 42 第3章 Top 10 列表 54 第4章左外连接 96 第5
  14. IIS6.0相关漏洞复现
  15. (四)数据建模和数据库设计
  16. LintCode Copy Books
  17. 【京东笔试题】熊猫吃竹子,回溯
  18. 动网新闻系统IWMS中实现带标题幻灯片的功能效果
  19. Python小知识:推导式用法大全,Comprehension
  20. DVD转VCD,MPG文件参考

热门文章

  1. Ceph 存储集群2-配置:心跳选项、OSD选项、存储池、归置组和 CRUSH 选项
  2. 51单片机接上拉电阻原理
  3. 路由网关---zuul
  4. 利用Python进行心脏病患者特征分析
  5. [ORACLE] ORA-00054 错误的解决方案
  6. 计算机三级网络技术(选择高频考点)
  7. 关于登录PL/SQL时出现的错误:error while tring to retrieve text for error ORA-12541
  8. Spring @Scheduled 使用详解
  9. Java WORD转换PDF 并添加水印 (附赠jar提取链接)
  10. 【最大似然估计】详解概率论之最大似然估计