ANGRY CLIVE:壹讀君,電腦文件名命名時(shí)候,提示文件名不合法,那這是什么法?
壹讀君:咳,開說之前,先清清嗓子。畢竟,回答這個(gè)問題是要暴露年齡的。
如果非要說這是一部什么法,最貼切的是《比爾蓋茨的DOS文件系統(tǒng)法》,簡稱《FAT法》。咱們現(xiàn)在都在使用windows,但是在許多方面(包括用戶的操作,也包括windows內(nèi)核)都留著DOS的血液。
如果想看一眼DOS長啥樣,點(diǎn)擊開始,輸入cmd回車即可。Windows98用戶要輸入command。正是因?yàn)橛盟奶嗔?,后來改成cmd了。
這么土的界面,以前是每臺機(jī)必用的
首先聲明,我們主要探討的還是Windows系統(tǒng)環(huán)境下的文件命名規(guī)則。
再來我們要說明的是,我們存放文件的時(shí)候,總是自己起個(gè)自己認(rèn)為有意義的名字,比如“狗蛋兒的丑照”,“討厭老板加班的成果”之類的。然而文件名其實(shí)是兩部分,一部分就是你自己起的“狗蛋兒的丑照”,還有一部分就是擴(kuò)展名,也就是后面那些你可能有的明白有的不明白的英文縮寫(譬如.jpg;.doc;.bat)。
大多數(shù)情況下我們都不需要自己去添加文件的擴(kuò)展名,系統(tǒng)會(huì)自動(dòng)識別并添加的(如果你不懂,自己瞎改擴(kuò)展名,文件可能會(huì)變得打不開了),但我們必須要知道,雖然我們只取了文件名,但一個(gè)文件完整的名稱應(yīng)為“文件名.擴(kuò)展名”。
下面來說說這個(gè)文件名都有什么具體法則要遵守。
我們把東西存放在電腦里,程序也好,文檔也好,圖片也好,命名的規(guī)則都一樣。于是,為了方便計(jì)算機(jī)存放、管理等,就必須要給人們制定一些規(guī)定,方便計(jì)算機(jī)識別和管理。畢竟,我們?nèi)祟惐扔?jì)算機(jī)更明事理,更聰明嘛!
第一類規(guī)定是為了存放。
只要存放東西,都會(huì)涉及到容量。這里說的不是文件本身的大小,而是文件名的字?jǐn)?shù),畢竟文件名也要以目錄的形式存放的。FAT給目錄中的第一行都只給11個(gè)格子。
這有點(diǎn)像什么呢?像大家做過的語文題目,請根據(jù)上下文寫一句話,要求字?jǐn)?shù)不超過11字,然后下面是一排11個(gè)格子,你多寫一個(gè)字就不得分,你要是有膽寫0個(gè)字那也不得分。
給文件起名也這樣,只能以8+3的形式存放,前面的8讓你起一個(gè)有意義的名字,可以小于8,但不能是0,后面的3是給電腦識別的,表示哪一類型的文件。傳統(tǒng)而經(jīng)典的8+3是“autoexec.bat”。
所以,F(xiàn)AT年代的第一規(guī)則就是文字名不超過8個(gè)字母,至少1個(gè)字母。
第二類規(guī)定是為了管理。
首先,一堆東西存在一起,要想?yún)^(qū)分他們,管理好他們,就必須不能重名。名字你任意起,但要是跟兄弟們重名了,那是不允許的。不然一叫“張三”,無數(shù)個(gè)張三出來,計(jì)算機(jī)都不知道給你哪個(gè)。再說了,計(jì)算機(jī)的世界,不允許你有雙胞胎,就算是雙胞胎,你也得給起個(gè)不一樣的名兒,總不能都叫“王二麻子”,另一個(gè)可以叫“王大麻子”嘛!要不你自己也不方便不是?
其次,系統(tǒng)也“任性”且“自私”。在DOS和windows的內(nèi)核里有這樣幾個(gè)特殊字符,在人家那兒有特殊的用處,你就不能按你的用處來,就是如此任性!那都有哪些呢?它們分別是英文冒號(:),斜杠(\和/),英文小數(shù)點(diǎn)(.)。
冒號前面那個(gè)字母就是我們常說的C盤、D盤。(當(dāng)然在我那個(gè)年代是A盤和B盤)。斜杠是分隔一層一層文件夾的。小數(shù)點(diǎn)就是用來分隔8+3中的8和3的。
還有幾個(gè)符號,系統(tǒng)也是自私的留給自己,就不許你用!它們是小于號(<)、大于號(>)、還有一個(gè)是豎線符號(|,我老師管它叫“管道號”)。這是DOS時(shí)代操作電腦必用的。啥意思呢?那時(shí)候不用鼠標(biāo),干什么都得從鍵盤輸入一行命令,在命令中除了必須指定文件名以外,還得指定讓電腦干什么。而這些符號就是起這作用的,當(dāng)然不可以在文件名里面使用。
最后還有個(gè)引號,命令中表示從哪到哪是一個(gè)不可分隔的整體,我們就用引號來表示出來。
在查找搜索中,最經(jīng)典的就是英文問號(?)和星號(*)了。一直到現(xiàn)在的windows時(shí)代,我們依然在用它們。問號可以代替一個(gè)未知的字符,一個(gè)星號可以代替任意個(gè)未知的字符。
這兩個(gè)符號是為了模糊匹配、方便檢索。比如,你就記得文件名里有“李狗蛋”。但是名字本身不是這個(gè),是更多的字,如果記得是幾個(gè)字,可以用“?”(這里要記得一個(gè)中文字是兩個(gè)字符),不過如果你不記得,或者懶,那么一個(gè)“*”可以幫助你解決這個(gè)問題。如果你非要用這倆符號起名字,那就會(huì)有一堆文件名里都有它,它就起不到最初的作用了。電腦也不想給自己找麻煩,更想給你提供方便。
如果你給文件取名,非要用上述符號,那系統(tǒng)只能“任性”的告訴你,你的文件名,違!法!了!
說了這么多對于我們的限制,其實(shí)也有為了方便我們而設(shè)置的規(guī)則。
比如文件名中,英文字母的大小寫。嚴(yán)格意義上說,對于電腦來說,大寫字母和小寫字母是兩個(gè)不同的字。但是為了遷就我們?nèi)祟惖牧?xí)慣,系統(tǒng)就將大小寫統(tǒng)一起來了,也就是說電腦在這個(gè)時(shí)候認(rèn)為A和a是一樣的,你給文件起個(gè)名字叫A,再起一個(gè)a,會(huì)算作重名,但是系統(tǒng)顯示的時(shí)候會(huì)按照你起的是大寫還是小寫來顯示。
如今DOS時(shí)代早已離去,而且電腦系統(tǒng)也從FAT升級到FAT32再到NTFS。
有些規(guī)則已經(jīng)停用了,比如8+3,現(xiàn)在流行的Windows操作系統(tǒng)已經(jīng)可以使用長文件名了,目前長文件名最多可用255個(gè)英文字符,如果使用中文字符則不能超過127個(gè)漢字,而擴(kuò)展名也不再只有3個(gè)字符,也有4個(gè)的,比如JEPG。Windows在創(chuàng)建文件時(shí),會(huì)自動(dòng)產(chǎn)生一個(gè)DOS文件名格式的別名。如果將文件拷貝到不支持長文件名的系統(tǒng)中,就只能見到文件的別名了。
有些規(guī)則還在使用中,比如上述不能使用的字符,還是不能用(攤手),不能重名還是不能重名。
每個(gè)世界都有它的規(guī)則,既然我們讓電腦幫我們記東西和處理東西,那就尊重一下它的規(guī)則和習(xí)慣,包容一下它的“任性”和“自私”吧!endprint