電腦檔案

歷史.計算機“檔案”一詞最早在1952年用於計算機資料方面，指的是在打孔卡所儲存的資訊。計算機檔案的定義.具有某種特定格式、其中儲存文字或二進位制資訊並存儲在長期儲存裝置或臨時儲存裝置中的一段資料流。檔案型別與內容.一種重要的檔案是文字檔案，是由一些字元的序列組成的。二進位制檔案一般是指除了文字檔案以外的檔案。現代大多數計算機的作業系統中，檔案是將資料安排成一維位元組的容器，格式主要由其內容定義；而某些平臺對檔案格式或由副檔名稱的位元組與ASCII或UTF-8字元相關聯，而影象、影片和聲音的格式則以其它副檔名解釋。大多數檔案型別也為元資料分配了一些位元組，這允許檔案攜帶一些關於本身的基本資訊。一些檔案系統能儲存支援格式以外的特殊資料，然後以擴充套件屬性或分支把它當成檔案。其它檔案系統可藉由跨鬥(sidecar)檔或依軟體特定的資料庫完成，然而，這些方法比容器和壓縮檔更易於丟失描述檔案的元資料。檔案大小.一個檔案資料內容所有的位元組數，即為該檔案相關儲存量的大小。大多數現代計算機的作業系統中，檔案大小是系統限制下任何非負整數的位元組。許多較舊的作業系統只紀錄實體儲存裝置上，檔案佔用區塊或磁軌的數量。在這樣的系統中，軟體採用其它方法來紀錄精確的位元組數。除非檔案的內容恰好對應於固有儲存池中的資料，檔案大小的一般定義並不特別要求具有任何真正的意義；某個特殊情況是零位元組檔案，這或許是剛建立而尚未寫入資料的，也可能作為檔案系統中的某種標誌，或是意外事故。例如，典型的類Unix系統中，在bin目錄的ls所指向的檔案大小幾乎很少變動。如果與dev目錄中的null檔案來比較，null也被當作是一個檔案，但其大小是無意義的。（這可能造成誤導，因為/dev/null並不是實在存有資料的內容：在類Unix系統中，所有資源包括裝置都可如同檔案一樣被存取，但檔案和裝置之間仍然有不同區別－對系統核心來說它們的行為不同，而且/dev/null檔的“大小”是一種晦澀的說明方式，把/dev/null當成是一個輸出裝置，它並沒有所謂的檔案大小。資料內容的安排.計算機檔案中的資訊會包含較小的資料包，或者它可以包含執行檔。將資訊分組到檔案中的方式完全取決於它的設計方式。這導致了多樣化標準的檔案結構，任何可想像到的，從最簡單到最複雜的用途。大多數計算機檔案根據軟體的用途而產生、修改或刪除檔案以供給計算機程式使用。建立程式的開發人員決定需要哪些檔案，如何使用它們與它們的名稱。在一些使用案例中，計算機的使用者能看到並利用軟體處理檔案內容。例如在文字編輯器軟體中，使用者操作他親自命名的文字檔。雖然資料內容由文字編輯器的內部程式格式來安排，但使用者可以選擇檔案的名稱和位置，並輸入大部份資訊而後儲存於檔案中。許多應用程式將檔案中的所有資料壓縮成單一個檔案，使用內部標記來分辨其中所包含型別的資訊。壓縮檔的優點是減少檔案數量、方便傳輸、減少儲存空間，或只是整理過時的檔案。在下一次使用之前，壓縮檔則必須需要被解壓縮。檔案的操作.以應用程式可對檔案執行，最基本的一些操作如下列：計算機的檔案可以被建立、移動、修改、增長、壓縮和刪除。大多數情況下，在計算機執行的應用程式會負責這些操作，但如果有需要，計算機的使用者也可以操作檔案。例如微軟的Word檔案通常是以微軟的Word辦公應用軟體來建立和修改，以回應使用者的操作指令；但使用者也可以使用檔案總管來作批次處理。在類Unix系統中，單一使用者程式不能直接在檔案系統的基礎上執行。只有系統內核能處理檔案，它透通地負責系統上所有使用者程式處理檔案的互動要求。計算機的作業系統提供了一個抽象的層級，這表示牽涉到使用者空間的檔案動作只能藉由檔案名稱。所以確保安全的刪除程式都會使用系統內核的功能，去擦掉檔案系統中的實際資料。識別和整理.在現代計算機中通常使用檔案的名稱來存取。在某些作業系統中，該名稱與檔案本身相關聯。在其它系統中，檔案則可能是匿名的，由具有名稱的連結指向。而後者的情況下，使用者仍可識別與檔案本身連結的名稱，但這是虛擬的類比，特別是當有多個連結指到同一檔案的的情況。目錄是指檔案。在計算機的檔案系統中，檔名與位於目錄的路徑必須和其它檔案有唯一的區隔，兩個檔案不可以具有相同的名稱和路徑。在匿名的檔案系統中，則會在名稱空間中有某一個檔案的參照。大多數情況下，名稱空間中的任何名稱將完全指向零個或某一個檔案，但是檔案可在任何名稱空間內由零個，一個或多個名稱來表示。根據應用程式的規則，由一定格式組成的的字串才能當作檔案或連結名稱。名稱是否正確取決於所使用的計算機系統型別。早期計算機只允許使用幾個字母或數字作為檔名，但現代計算機允許包含幾乎任何unicode字母或數字組合的長名稱，讓使用者更容易從名稱來理解檔案的用途目的。某些計算機系統允許檔案名包含空格；檔名大小寫的區分由檔案系統決定。Unix檔案系統通常會區分檔名的大小寫，並允許使用者層級的應用程式，產生以相同字串但大小寫不同命名的檔案。微軟視窗系統支援多個檔案系統，每個檔案系統有關於大小寫區分的策略；常見的FAT檔案系統，如果使用者用磁碟編輯器編輯目錄條目中的檔案名，可以有多個大小寫不同的檔案。然而，使用者應用程式通常無法產生相同名稱但大小寫不同的多重檔案。大多數計算機使用檔案夾或目錄，不論是哪個用詞，其概念都一樣將檔案安排為層次結構。每一個目錄可包含任意數量的檔案，它還可以包含其它目錄，在其中的檔案夾稱為子目錄。子目錄也能包含更多的檔案和目錄等，而造成一個樹狀結構。其中的“主目錄”。運用目錄使得以邏輯方式來組織檔案變得更加容易。當計算機允許使用目錄時，每個檔案和目錄不僅具有自己的名稱，而且還包含識別其所位於的路徑。在路徑中使用某種特殊字元。許多計算機系統使用檔案名中的副檔名，來幫助識別它們包含的資料內容，也稱為檔案型別。在微軟系統的副檔名由檔案名末尾的句點組成，後跟幾個字母來標識檔案的型別。 .txt 的副檔名代表型別為文字檔，一個 .doc 副檔名代表型別為微軟辦公室軟體Word產生的檔案，諸如此類。即使某個系統使用副檔名，系統識別和處理它們的程度可能會有所不同。在一些系統中它們是必需的，而其它系統完全忽略副檔名的存在。檔案的保護.許多現代計算機系統提供了保護檔案避免意外和故意破壞的方法。系統可讓多個使用者設定個別檔案的許可權，以控制誰可以擁有修改、刪除或產生檔案和目錄的許可權。例如，授予使用者只能讀取檔案或目錄的許可權，但不能修改或刪除它時，可以檢視檔案但是不能修改，該旗標對於不可修改或刪除的關鍵資訊非常有用，例如僅供系統內部使用的特殊檔案。一些系統還包括一個隱藏旗標，使某些檔案不會出現；該旗標被系統用來隱藏那些使用者不應該改變的基本系統檔案。儲存方式.任何有用途的檔案都必須具有實體，亦即計算機系統中的檔案。檔案把柄通常是不透明的資料型別或整數，它是在1961年左右由在Burroughs B5000執行，基於ALGOL的Burroughs MCP引入的，但現在已經普及了。雖然一個檔案表現為一個單一的流，但它經常在磁碟不同的位置儲存為多個數據碎片。作業系統會將它們組織成檔案系統，每個檔案放在特定的資料夾或目錄中。檔案是由軟體建立的，而且符合特定的檔案格式。備份.當計算機檔案含有非常重要的資訊時，則有備份程式的需求以防止破壞檔案的災難。備份指的是在另外獨立的儲存裝置上，建立檔案的複製版本，以確保當計算機發生事故，或者當檔案被意外刪除時，可以從備份將它們還原。有很多種備份檔案的方法。大多數計算機系統提供工具程式來協助備份過程，如果有許多檔案需要安全備份，這些程式會非常耗費時間。檔案通常被複製到可移動的介質上，例如寫入CD或磁帶。將檔案複製到同一臺計算機中的另一個硬碟或可防止一個磁碟出現故障，但如果有必要防止整臺計算機出現故障或破壞，則必須在可移動的其他介質上複製檔案，並將備份存放在另一個安全而且距離不同的位置。祖-父-子備份方法會自動進行三次備份；祖檔案是檔案最舊的複製版本，而子檔案是目前最新的複製版本。檔案系統和檔案管理器.計算機組織、命名、儲存和操作檔案的方式被統稱為其檔案系統。大多數計算機至少有一個檔案系統。有些計算機可使用數種不同的檔案系統。例如在較新的微軟視窗系統上，除了最新版本預設的NTFS檔案系統之外，還向前支援舊版MS-DOS的FAT檔案系統。每種系統都有優缺點，例如FAT僅允許無空格，八字元的檔案名通常用於微軟的視窗系統，而在Linux系統常見的檔案管理器則是Nautilus。