长文件名和短文件名

article/2025/11/4 22:05:04

2019独角兽企业重金招聘Python工程师标准>>> hot3.png

文件命名时有一个8.3规则
8
是指文件名,就是******.XXX里的***
意思是这个部分不能超过8个字符,在DOS里,如果超过8个字符了是不会被识别的.后面的XXX是扩展名,也不一定非得是三个字符,像网页文件的扩展名可以是htm也可以是html,只不过国际上习惯于用三个字符来做扩展名
文件名.扩展名才是一个文件的完整的名字
文件名用来标识一个单独的文件,指的是一个个体,扩展名标识的是一类文件


     

FAT32系统中长文件名的存储(转)  

                   2011-07-29 16:22:11|  分类:          实时操作系统                          |举报        |字号 订阅      

FAT32的一个重要的特点是完全支持长文件名。长文件名依然是记录在目录项中的。

 

为了低版本的OS或程序能正确读取长文件名文件,系统自动为所有长文件名文件创建了一个对应的短文件名,使对应数据既可以用长文件名寻址,也可以用短文件名寻址。不支持长文件名的OS或程序会忽略它认为不合法的长文件名字段,而支持长文件名的OS或程序则会以长文件名为显式项来记录和编辑,并隐藏起短文件名。


    当创建一个长文件名文件时,系统会自动加上对应的短文件名,其一般有的原则:
    (1)、取长文件名的前6个字符加上"~1"形成短文件名,扩展名不变。
    (2)、如果已存在这个文件名,则符号"~"后的数字递增,直到5。
    (3)、如果文件名中"~"后面的数字达到5,则短文件名只使用长文件名的前两个字母。通过数学操纵长文件名的剩余字母生成短文件名的后四个字母,然后加后缀"~1"直到最后(如果有必要,或是其他数字以避免重复的文件名)。
    (4)、如果存在老OS或程序无法读取的字符,换以"_"

 

短文件格式的目录项。其参数意义见表14:
 

表14   FAT32短文件目录项32个字节的表示定义
字节偏移(16进制)字节数定义
0x0~0x78文件名
0x8~0xA3扩展名
0xB*1属性字节00000000(读写)
00000001(只读)
00000010(隐藏)
00000100(系统)
00001000(卷标)
  00010000(子目录)
00100000(归档)
0xC1系统保留
0xD1创建时间的10毫秒位
0xE~0xF2文件创建时间
0x10~0x11 2文件创建日期
0x12~0x132文件最后访问日期
0x14~0x15 2文件起始簇号的高16位
0x16~0x172文件的最近修改时间
0x18~0x192文件的最近修改日期
0x1A~0x1B2文件起始簇号的低16位
0x1C~0x1F4表示文件的长度

      * 此字段在短文件目录项中不可取值0FH,如果设值为0FH,目录段为长文件名目录段

 

    长文件名的实现有赖于目录项偏移为0xB的属性字节,当此字节的属性为:只读、隐藏、系统、卷标,即其值为0FH时,DOS和WIN32会认为其不合法而忽略其存在。这正是长文件名存在的依据。

 

    将目录项的0xB置为0F,其他就任由系统定义了,Windows9x或Windows 2000、XP通常支持不超过255个字符的长文件名。

 

    系统将长文件名以13个字符为单位进行切割,每一组占据一个目录项。所以可能一个文件需要多个目录项,这时长文件名的各个目录项按倒序排列在目录表中,以防与其他文件名混淆
    长文件名中的字符采用unicode形式编码(一个巨大的进步哦),每个字符占据2字节的空间。其目录项定义如表15。

表15   FAT32长文件目录项32个字节的表示定义
字节偏移
(16进制)
字节数定义
0x01属性字节位意义7保留未用
61表示长文件最后一个目录项
5保留未用
4顺序号数值
3
2
1
0
0x1~0xA10长文件名unicode码①
0xB1长文件名目录项标志,取值0FH
0xC1系统保留
0xD1校验值(根据短文件名计算得出)
0xE~0x1912长文件名unicode码②
0x1A~0x1B 2文件起始簇号(目前常置0)
0x1C~0x1F4长文件名unicode码③

 

 

 

 

   系统在存储长文件名时,总是先按倒序填充长文件名目录项,然后紧跟其对应的短文件名。从 表15可以看出,长文件名中并不存储对应文件的文件开始簇、文件大小、各种时间和日期属性。文件的这些属性还是存放在短文件名目录项中,一个长文件名总是 和其相应的短文件名一一对应,短文件名没有了长文件名还可以读,但长文件名如果没有对应的短文件名,不管什么系统都将忽略其存在。所以短文件名是至关重要 的。

    在不支持长文件名的环境中对短文件名中的文件名和扩展名字段作更改(包括删除,因为删除是对首字符改写E5H),都会使长文件名形同虚设。

 

(长文件名如何与短文件名对应?仅靠她们之间的位置关系?)

    长文件名和短文件名之间的联系光靠他们之间的位置关系维系显然远远不够。其实,长文件名的0xD字节的校验和起很重要的作用,此校验和是用短文件名的11 个字符通过一种运算方式来得到的。系统根据相应的算法来确定相应的长文件名和短文件名是否匹配。这个算法不太容易用公式说明,我们用一段c程序来加以说 明。
    假设文件名11个字符组成字符串shortname[],校验和用chknum表示。得到过程如下:

    int i,j,chknum=0;
    for (i=11; i>0; i--)
        chksum = ((chksum & 1) ? 0x80 : 0) + (chksum >> 1) + shortname[j++];

    如果通过短文件名计算出来的校验和与长文件名中的0xD偏移处数据不相等。系统无论如何都不会将它们配对的。
    依据长文件名和短文件名对目录项的定义,加上对簇的编号和链接,FAT32上数据的读取便游刃有余了。





转载于:https://my.oschina.net/u/566587/blog/298570


http://chatgpt.dhexx.cn/article/qHJZyv9q.shtml

相关文章

关于Windows10 文件名最大长度260

直接上官方文档: Maximum Path Length Limitation - Win32 apps | Microsoft DocsMaximum path length limitation.https://docs.microsoft.com/en-us/windows/win32/fileio/maximum-file-path-limitation?tabspowershell但是文档中关于文件全路径最长260的设定&a…

自定义文件名长度,随机重命名文件名称

一些文件名称可能太长,很多人问如何自定义长度,随机重命名出每个文件名称呢?如何用第三方的工具来批量操作呢?在众多的文件批量重命名软件中【文件批量改名高手】算是操作简单。易懂的软件了,下面一起来操作步骤吧。 …

windows文件名太长(超255字符)无法重新命名

问题描述: 最近下载了一个mp4课件,文件名称太长,试过网上注册表与组策略方法来重命名,均无效 [尝试的方法链接] 解决措施: 用vscode编译器打开文件的上一级目录在vscode的资源编译器中修改对应文件的文件名退出vscod…

linux 查看文件名和路径最大长度限制

文件查看方式 cat /usr/include/linux/limits.h命令查看方式 文件名最大长度限制 getconf NAME_MAX /usr路径最大长度限制 getconf PATH_MAX /usr

[WinError 206] 文件名或扩展名太长(组策略值修改 解除windows文件名 字符长度限制)

Windows 历来将路径长度限制为 260 个字符。这意味着比这更长的路径将导致编程语言相关路径函数无法解析并且会导致错误。 在最新版本的 Windows 中,此限制可以扩展到大约 32,000 个字符。 解决办法: windows键R键打开运行窗口,再输入regedi…

【python量化】统计套利之配对交易策略实现(基于python)

关于做统计套利所需要的基本知识在前面也整理过了: 时间序列分析之ADF检验 时间序列分析之协整检验 时间序列分析之相关性 下面用python实现一个简单的配对交易策略: 目录 一、交易对象选取 相关性检验 ADF检验 协整检验 二、主体策略 投资组合…

使用数据驱动进行配对交易:简单交易策略

作者:chen_h 微信号 & QQ:862251340 微信公众号:coderpai 使用数据驱动进行配对交易:简单交易策略 配对交易是一个纯基于数学分析的一个非常好的例子。接下里的文章,我们将演示如何去利用数据来创建一个自动化…

【Python】使用tushare完成配对交易策略

tushare ID:495023 分析对象:茅台&五粮液,获取上述股票2020/1/1到2021/12/31的股票数据, 1.可视化价差spread、z-score 2.产生并可视化交易信号:上升交易信号、下降交易信号 3.计算策略的累计效益,可视…

量化投资实战(二)之配对交易策略---最短距离法

点赞、关注再看,养成良好习惯 Life is short, U need Python 初学量化投资实战,[快来点我吧] 配对交易策略实战—最短距离法 基本流程 配对组合 --> 计算价差 --> 决策标准 --> 确定头寸 --> 平仓获利 一、股票对的选取 读取数据 import p…

配对交易(一):期货品种相关性研究

配对交易定义 配对交易是一种基于数学分析交易策略,其盈利模式是通过两只证券的差价(spread)来获取,理论上可以做到和大盘走势完全无关。但其本质上是一种统计套利,也具有一定的风险性。 基本原理 配对交易的基本原理…

高频交易——当期货配对交易加入了止损

高频交易——当期货配对交易加入了止损 idea数据介绍配对交易寻找配对标的相关性协整性 策略构建回测结果 总结核心代码示例 idea 目前在配对交易的识别上比较有代表性的是根据二者的相关性来判断,也有根据标的之间协整性来进行选择的,在这里我们结合两…

量化投资实战(三)之配对交易策略---协整法

点赞、关注再看,养成良好习惯 Life is short, U need Python 初学量化投资实战,[快来点我吧] 配对交易策略实战—协整法 基本流程 配对组合 --> 计算价差 --> 决策标准 --> 确定头寸 --> 平仓获利 案例描述 本案例以上证50股票数据为对象、…

原创 | 以ETF为例——配对交易Python源码全公开

配对交易是指八十年代中期华尔街著名投行Morgan Stanley的数量交易员Nunzio Tartaglia成立的一个数量分析团队提出的一种市场中性投资策略。 在实际操作中,其执行过程可以简单地描述为:投资者首先选择相互匹配的两个资产,当配对资产价格差异增…

配对交易之统计套利配对:协整(cointegration)

Engle和Granger观察到了一个相当有趣的现象。尽管两个时间序列是非平稳的,但在某些情况下,两者的特定线性组合实际上是平稳的;也就是说,这两个序列在某种程度上是步调一致的。Engle和Granger创造了“协整”(cointegrat…

【量化】相关系数进行配对交易

根据统计数据,对价差进行买卖,而不去做股票本身趋势的预测,是否能做到旱涝保收呢。下面是利用股票对之间的相关系数来进行配对交易的研究。 1,首先想到利用统计套利,可能会想到两只股票的相关系数是否会让两只股票的走…

USDCNY--USDCNH 配对交易___境内及离岸人民币即期的协整关系及配对交易策略分析

由于中国没有实现资本项下的可自由兑换,目前人民币的外汇交易存在境内及境外两个市场。在境内交易的CNY和境外交易的CNH,本质都是人民币,从这个角度上看,两者具有高度相关性。但是由于两者的市场形态、监管细节、参与机构、流动性…

沪深300配对交易

目录 获取数据相关系数三级目录协整检验聚类算法进一步筛选回测 获取数据 通过pandas_datareader来获取沪深300的股票数据,为此,先从网上爬虫得到沪深300的股票名单 import os import pandas as pd import pandas_datareader as web import pickle imp…

配对交易策略设计

可交易的一个关键要求是两个股票的对数价格序列之间存在均衡关系。 而均衡关系由两个值描述:协整系数以及均衡值。一旦确定这两个值,它们就可以用来构建两种股票的对数价格的线性组合,即所谓的价差。配对交易是对价差均值回归特性的押注。当…

配对交易之统计套利配对:介绍

现在让我们来解释一下配对交易背后的想法。从估值角度来看,投资关心的问题是卖出高估值的证券,买入低估值的证券。然而,只有当我们也知道证券的真正价值时,才有可能确定证券被高估或低估。但是,这很难做到。配对交易试…

股票配对交易策略-最小距离法

策略 配对交易( Pairs Trading)为这种困境提供了一种既能避险又盈利的策略,其又被称之为价差交易或者统计套利交易,是一种风险小、收益较稳定的市场中性策略。一般的做法,是在市场中寻找两只历史价格走势有对冲效果的股票组成配对&#xff0c…