檔案本身不是0位元組,但檔案內容是0位元組。
通俗一點的說,我們的磁碟被分為了幾個部分。
很大一部分被用來儲存檔案,每個檔案都有相應長度的空間,他們像DNA一樣分佈在一條線上,且為了速度,這些檔案儲存不講究順序,也就是不同目錄下的檔案可能在這條直線上是相鄰的。
------+----------+------------+-+---+----
另一個部分為檔案系統所用,他儲存了檔案目錄結構,每個檔案的位置。
例如
一個檔案位於128-300之間,路徑是C:/test/1.txt
一個檔案位於400-9990之間,路徑是C:/windows/start.exe
這樣,我們在瀏覽檔案的時候,系統只會從檔案系統讀取目錄結構,進行移動操作時,只需改變檔案系統儲存的路徑資訊。
因此,假設每個位置儲存1位元組資訊,
檔案內容大小=(結束位元組位置-開始位元組位置-1)。
所以當檔案系統儲存瞭如下資訊,
檔案位於98-99之間,路徑是C:/1.txt
因此,該檔案的內容大小為0,但佔用空間不為0。
佔用空間=檔案內容+檔案系統該檔案所佔空間
這也就是為什麼瘋狂新建目錄也會導致空間使用完的情況。
另外值得一提的是,相同檔案系統的移動檔案,只需修改檔案系統內容即可。
不同檔案系統,因為儲存檔案的方式不同,需要進行翻譯,所以在隨身碟和電腦之間移動檔案時也需要讀條,不同磁碟移動也需要讀條。
需要改變檔案系統,使用格式化即可。
檔案本身不是0位元組,但檔案內容是0位元組。
通俗一點的說,我們的磁碟被分為了幾個部分。
很大一部分被用來儲存檔案,每個檔案都有相應長度的空間,他們像DNA一樣分佈在一條線上,且為了速度,這些檔案儲存不講究順序,也就是不同目錄下的檔案可能在這條直線上是相鄰的。
------+----------+------------+-+---+----
另一個部分為檔案系統所用,他儲存了檔案目錄結構,每個檔案的位置。
例如
一個檔案位於128-300之間,路徑是C:/test/1.txt
一個檔案位於400-9990之間,路徑是C:/windows/start.exe
這樣,我們在瀏覽檔案的時候,系統只會從檔案系統讀取目錄結構,進行移動操作時,只需改變檔案系統儲存的路徑資訊。
因此,假設每個位置儲存1位元組資訊,
檔案內容大小=(結束位元組位置-開始位元組位置-1)。
所以當檔案系統儲存瞭如下資訊,
檔案位於98-99之間,路徑是C:/1.txt
因此,該檔案的內容大小為0,但佔用空間不為0。
佔用空間=檔案內容+檔案系統該檔案所佔空間
這也就是為什麼瘋狂新建目錄也會導致空間使用完的情況。
另外值得一提的是,相同檔案系統的移動檔案,只需修改檔案系統內容即可。
不同檔案系統,因為儲存檔案的方式不同,需要進行翻譯,所以在隨身碟和電腦之間移動檔案時也需要讀條,不同磁碟移動也需要讀條。
需要改變檔案系統,使用格式化即可。