windows系统下的文件长名和文件短名
https://blog.csdn.net/zfs2008zfs/article/details/51154873
1、短文件名的由来
windows下的文件短名是dos+fat12/fat16时代的产物,又称为8dot3命名法,类似于PROGRA~1(目录)或者元素周~1.exe(文件)这样的名称。
8是指文件名或目录名的主体部分小于等于8个字符 ; 3是指文件名或目录名的扩展部分小于等于3个字符 ;中间以 . 作为分割
在FAT16文件系统中,由于FDT中的文件目录登记项只为文件名保留了8个字节,为扩展名保留了3个字节,所以DOS和Windows的用户为文件起名字时要受到8.3格式的限制。
2、长文件名由来
NTFS文件系统支持unicode(UTF16)字符集文件名,最长达255个UTF16字符,因此NTFS文件系统以及基于unicode字符集的32位NT内核Windows操作系统本身都没有必要遵循16位DOS时代遗留的8.3格式短文件名规范。
3、兼容性问题
从win95开始,采用fat32已经支持长文件名,但是为了保持兼容性,保证低版本的程序能正确读取长文件名文件,每当创建新文件或新目录时,系统自动为所有长文件名文件创建了一个对应的短文件名。使这个文件既可以用长文件名寻址,也可以用短文件名寻址。
当创建一个长文件名时,长名目录项和对应的别名(短名)目录项的存储有以下6个处理原则:
·取长文件名的前6个字符加上“~1”形成长文件名的别名(即短文件名),并将长文件名中最后一部分(最后一个间隔符“.”后面字符)的前3个字符作为其扩展名。
·如果已存在这个名字的文件,则符号“~”后的数字会自动增加。
·任何包括小写字母的文件名都被看作是长文件名,而不管其长度是多少。如果有对于DOS和Windows3.x非法的字符,则用下划线替代。
·长文件名存储在属性标志为OFH的32字节目录登记项中(这是与短文件名目录项的区别)。用Unicode格式编码,每个字符(无论是英文或是汉字)均占2字节。
·每个目录登记项用26个字节存储13个字符(序号由第1字节指定)。位置多余时,先用00表示结束,再用FFH填充。
·长文件名用若干个长名目录项保存,长文件名目录项倒序排在文件短目录项前面。
采用以上的存储办法后,在Windows9x下创建的长文件名在DOS或Windows3.x下就只能看见其对应的短文件名,完全忽略了长文件名。在Windows9x下运行的应用程序通过操作系统请求文件名时,Windows9x会根据应用程序的性质分别给予不同的文件名,16位应用程序得到8.3格式的文件名,而32位应用程序得到长文件名。
win9x系统同样支持长文件名,同时强制生成一个短文件名。
在nt32+ntfs下面短文件名变为可选。
在xp和win7系统下,在命令行中与短文件名有关的一些命令:
fsutil behavior query disable8dot3 检查NTFS驱动是否开启8.3兼容特性
fsutil behavior set disable8dot3 1 关闭8.3兼容特性
fsutil behavior set disable8dot3 0 开启8.3兼容特性
fsutil file setshortname <longname> <8.3name> 手工指定一个8.3短名称
dir /x 列出当前目录的子目录和文件,以及相应的8.3兼容名称(如果有的话)
参考文章链接:
http://lcx.cc/?i=2644
http://my.oschina.net/u/566587/blog/298570
http://www.xuebuyuan.com/2208606.html
http://blog.csdn.net/zhangjinqing1234/article/details/7604541
---------------------
作者:antivice
来源:CSDN
原文:https://blog.csdn.net/zfs2008zfs/article/details/51154873
版权声明:本文为博主原创文章,转载请附上博文链接!
windows系统下的文件长名和文件短名相关推荐
- Windows系统下上传到Linux指定文件夹
一.准备环境 SecureCRT已成功连接虚拟机Linux系统. 二.打开"SFTP" 三.将Windows下文件直接拖入,有如下显示 四.进入Linux系统查看文件位置,并移动到 ...
- Windows系统下CMD命令行切换目录文件
一.按部就班,让你彻底搞懂命令行切换目录文件 1.按 WIN+R 快捷键打开 运行,输入cmd,点击"确定" 或 按回车键打开命令行窗口.打开后如下: Microsoft Wind ...
- windows系统下如何删除带有两点的文件夹
情况说明: 当文件夹末尾带点,或者带多个点的时候,删除文件夹会提示,文件夹不存在. 以下方式,以删除文件夹路径为 d:\osfipin\aaa.. 方式一: 执行以下命令行代码 md d:\osfip ...
- ubuntu系统下gedit 打开GBK字符集编码文件出现乱码问题解决办法
使用 Gedit 打开 Windows 系统下编写的文本文件时,文件的中文全是乱码. 有些在Windows下能够打开的txt文件在Ubuntu下用gedit打开时,中文显示是乱码,这是因为编码方式不同 ...
- windows系统下批量修改文件后缀
在Windows系统下批量修改文件后缀要用到 ren命令.在使用win10系统的朋友们肯定会发现系统会给自己推荐一些开机锁屏壁纸, 今天就用这个命令批量保存这些壁纸. 这些壁纸文件目录在: C:\Us ...
- php ttf 字体 url,window_TTF字体文件如何安装 TTF文件打不开解决方法,TTF文件是Windows系统下的字体文 - phpStudy...
TTF字体文件如何安装 TTF文件打不开解决方法 TTF文件是Windows系统下的字体文件,可通过系统自带的字体安装程序直接安装添加字体,比如常用的"仿宋_GB2312"字体就可 ...
- python修改文件格式为unix_软件测试技术之如何用python在Windows系统下,生成UNIX格式文件...
本文将带你了解软件测试技术之如何用python在Windows系统下,生成UNIX格式文件,希望对大家学测试技术有所帮助 如何用python在Windows系统下,生成UNIX格式文件 平时测试工作中 ...
- Windows 系统下.sh文件的运行
在论文期间好多的python项目是用Linux系统下写的,为了省事就尝试了再Windows系统下运行,以下是运行的过程: 1,Git的安装,下载Git并安装,我是在360软件管家中直接下载安装的,速 ...
- Unix/Mac系统下的文件在Windows里打开的话,所有文字会变成一行——怎么将Unix/Mac系统下的文件转换到Windows系统下
先交代一下遇到的问题: 本人用的是Windows系统.在学习Triangle Mesh时,想将bunny.ply等经典的PLY文件导入程序中. 但是,文件被读入程序后,所有的内容变成了一行.从而,现成 ...
- 用windows系统下的DOS命令将腾讯视频客户端下载的qlv文件转换成MP4格式(图文详解)
用windows系统下的DOS命令将腾讯视频客户端下载的qlv文件转换成MP4格式(图文详解) 前言 原理 工具 步骤 延伸 博主联系方式 前言 本人喜欢收集各种优秀的视频,但是很多情况下我们看到的视 ...
最新文章
- 李德毅院士:探索新一代人工智能产业发展
- 第九章 硬件抽象层:HAL 心得笔记
- java 解析注解_Java知识点总结(注解-解析注解)
- 偏最小二乘法回归(Partial Least Squares Regression)
- BZOJ1720: [Usaco2006 Jan]Corral the Cows 奶牛围栏
- 计算机基础,你知道蓝屏的原因吗
- jsp网页上实现计算圆面积小程序
- srgan要训练多久_儿童内裤多久换一次,穿多久要扔掉?
- 用HTML+css制作一个简单的三级导航
- 服务器C盘内存不足,发现C盘TEMP文件夹占用44G
- 秒杀系统流量削峰这事应该怎么做?为什么要削峰呢?
- nvidia所有版本显卡驱动下载地址
- 我在首席数据官年会上的演讲实录
- [Win10] [C# Desktop] 两种方法发送原生Toast通知
- uniapp一键登录功能
- cs224u Overview of the Stanford Sentiment Treebank
- FTP手机和PC互传文件
- 嵌套交叉验证的一致特征(Consensus features nested cross-validation)
- Sigmoid 与 Softmax 的区别
- idea中启动vue项目
热门文章
- 因为计算机限制无法访问U盘,U盘拒绝访问怎么办解决教程
- c语言在内存存储结构,C语言中float,double类型,在内存中的结构(存储方式)
- FFplay文档解读-4-编解码器选项一
- 10款3D桌面推荐,很不错哦
- 查看往年CET46级成绩考试记录
- AI 编辑视频!这特效太逆天了!代码开源 SIGGRAPH Asia 2021
- python打砖块游戏算法设计分析_基于pygame的打砖块游戏,做到一半,不带做了
- 解密QQ图标升级计划
- 德国IT行业薪酬水平大揭秘 v1.0
- DeepCross(DCN)模型及torch实现