บทความนี้เกี่ยวกับรูปแบบการเก็บข้อมูลในคอมพิวเตอร์ สำหรับงานสารบรรณ ดูที่ แฟ้มเอกสาร
**ไฟล์** (อังกฤษ: file) หรือ **แฟ้ม** ในทางคอมพิวเตอร์หมายถึงกลุ่มระเบียนสารสนเทศใด ๆ หรือทรัพยากรสำหรับเก็บบันทึกสารสนเทศ ซึ่งสามารถใช้งานได้กับโปรแกรมคอมพิวเตอร์ และโดยปกติจะอยู่บนหน่วยเก็บบันทึกถาวรบางชนิด ซึ่งไฟล์นั้นคงทนถาวรในแง่ว่า ยังคงใช้งานได้สำหรับโปรแกรมอื่นหลังจากโปรแกรมปัจจุบันใช้งานเสร็จสิ้น ไฟล์คอมพิวเตอร์ถือได้ว่าเป็นของทันสมัยคู่กับเอกสารกระดาษ ซึ่งแต่เดิมจะถูกเก็บไว้ในตู้แฟ้มเอกสารของสำนักงานและห้องสมุด จึงเป็นที่มาของคำนี้

ไฟล์อาจเรียกได้หลายชื่อเช่น *แฟ้มข้อมูล, แฟ้มอิเล็กทรอนิกส์, แฟ้มคอมพิวเตอร์, แฟ้มดิจิทัล, ไฟล์ข้อมูล, ไฟล์อิเล็กทรอนิกส์, ไฟล์คอมพิวเตอร์, คอมพิวเตอร์ไฟล์, เอกสารอิเล็กทรอนิกส์* ฯลฯ

ประวัติ
-------

ไฟล์ (แฟ้ม) บัตรเจาะรู
"ดิสก์ไฟล์" คู่หนึ่งของระบบคอมพิวเตอร์ไอบีเอ็ม 350
คำว่า "ไฟล์" ปรากฏเป็นครั้งแรกในบริบทของหน่วยเก็บบันทึกของคอมพิวเตอร์เมื่อ พ.ศ. 2495 โดยอ้างถึงสารสนเทศที่เก็บบันทึกบนบัตรเจาะรู  การใช้งานในยุกแรก ๆ ผู้คนถือว่าไฟล์คือฮาร์ดแวร์ที่เป็นรากฐาน (มากกว่าจะหมายถึงเนื้อหา) ตัวอย่างเช่นคอมพิวเตอร์ไอบีเอ็ม 350 ดิสก์ไดรฟ์ถูกเรียกว่า "ดิสก์ไฟล์"  ระบบต่าง ๆ อาทิระบบแบ่งกันใช้เวลาที่เข้ากันได้ (Compatible Time-Sharing System: CTSS) เมื่อ พ.ศ. 2505 แนวคิดเรื่องระบบไฟล์เด่นชัดขึ้น โดยปรากฏเป็น "ไฟล์" หลายไฟล์บนอุปกรณ์เก็บบันทึกเครื่องหนึ่ง นำไปสู่การใช้งานไฟล์ในสมัยใหม่ ชื่อไฟล์ในระบบแบ่งกันใช้เวลาที่เข้ากันได้มีสองส่วนได้แก่ "ชื่อหลัก" ที่ผู้ใช้สามารถอ่านได้และ "ชื่อรอง" ที่แสดงถึงชนิดของไฟล์  หลักการนี้ยังคงใช้อยู่ในระบบปฏิบัติการหลายรุ่นในทุกวันนี้ซึ่งรวมทั้งไมโครซอฟท์ วินโดวส์

เนื้อหาไฟล์
-----------

ระบบปฏิบัติการสมัยใหม่จัดการไฟล์โดยมองเป็นแถวลำดับหนึ่งมิติของข้อมูลไบต์ รูปแบบไฟล์ซึ่งมักแสดงให้เห็นได้จากส่วนขยายไฟล์ เป็นตัวระบุกฎเกณฑ์ว่าข้อมูลไบต์ในไฟล์จะถูกจัดการและแปลความหมายอย่างไร ตัวอย่างเช่น ข้อมูลไบต์ของไฟล์ข้อความธรรมดา (ไฟล์ .txt ในวินโดวส์) เกี่ยวข้องกับอักขระต่าง ๆ ในแอสกีหรือยูนิโคดเป็นต้น ในขณะที่ข้อมูลไบต์ของไฟล์ภาพ วิดีโอ และเสียง ถูกแปลความหมายในทางที่ต่างไป ไฟล์ส่วนใหญ่ได้จัดสรรข้อมูลไบต์จำนวนเล็กน้อยสำหรับเมทาเดตา ซึ่งช่วยให้ไฟล์สามารถจดจำสารสนเทศเบื้องต้นเกี่ยวกับตัวเอง

### ขนาดไฟล์

ไฟล์อาจมีขนาดหนึ่ง ณ เวลาหนึ่ง โดยปกติจะแสดงออกเป็นจำนวนของไบต์ ซึ่งแสดงว่าไฟล์นั้นเกี่ยวเนื่องกับหน่วยเก็บบันทึกในปริมาณเท่าใด ขนาดไฟล์ในระบบปฏิบัติการสมัยใหม่เป็นเลขจำนวนเต็มซึ่งไม่เป็นลบ มีขนาดได้ตั้งแต่ศูนย์จนถึงขีดจำกัดสูงสุดของระบบ อย่างไรก็ตาม นิยามของไฟล์มิได้จำเป็นว่าขนาดไฟล์ ณ เวลาหนึ่งต้องมีความหมายเช่นนั้นจริง ในกรณีที่ข้อมูลภายในไฟล์ไม่สัมพันธ์กับข้อมูลในแหล่งรวมของหน่วยเก็บบันทึกถาวร ไฟล์ศูนย์ไบต์เป็นกรณีพิเศษซึ่งอาจเป็นอุบัติเหตุในการบันทึก (เช่นผลจากการยกเลิกการทำงานบนดิสก์) หรือทำงานเป็นตัวบ่งชี้บางชนิดในระบบไฟล์

ตัวอย่างเช่น ไฟล์ที่จุดลิงก์ /bin/ls เชื่อมโยงไปในระบบปฏิบัติการแบบยูนิกซ์ทั่วไป เป็นไปได้ว่ามีขนาดตามที่กำหนดซึ่งแทบจะไม่เปลี่ยนแปลง หากเทียบกับ /dev/null ซึ่งเป็นไฟล์เช่นกันแต่ขนาดของมันอาจไม่ชัดเจน

### การจัดการข้อมูลในไฟล์

สารสนเทศในไฟล์คอมพิวเตอร์อาจประกอบด้วยกลุ่มสารสนเทศที่มีขนาดเล็กกว่า (ซึ่งมักเรียกว่า "ระเบียน" หรือ "บรรทัด") ซึ่งแตกต่างกันเป็นเอกเทศแต่มีลักษณะบางประการร่วมกัน ตัวอย่างเช่น ไฟล์ข้อมูลบัญชีค่าจ้างอาจมีสารสนเทศเกี่ยวกับรายชื่อลูกจ้างทั้งหมดในบริษัทและรายละเอียดของการจ่ายค่าจ้าง หมายความว่าแต่ละระเบียนในไฟล์มีข้อมูลลูกจ้างหนึ่งคน และทุกระเบียนก็มีลักษณะความเกี่ยวข้องกับการจ่ายค่าจ้างร่วมกัน สิ่งนี้เปรียบได้กับ การจัดเก็บข้อมูลการจ่ายค่าจ้างทั้งหมดลงในตู้เก็บเอกสารจำเพาะในสำนักงานที่ไม่มีคอมพิวเตอร์ ไฟล์ข้อความอาจประกอบด้วยข้อความหลาย ๆ บรรทัด ซึ่งสัมพันธ์กับบรรทัดที่ถูกพิมพ์ลงบนกระดาษ เป็นต้น ส่วนในทางอื่น ไฟล์อาจประกอบด้วยอิมเมจฐานสองที่กำหนดขนาดได้ (BLOB) หรือประกอบด้วยรหัสที่ทำงานได้ (ไฟล์กระทำการ)

วิธีการที่ข้อมูลสารสนเทศรวมกลุ่มเข้าด้วยกันเป็นไฟล์ล้วนขึ้นอยู่กับการออกแบบ สิ่งนี้นำไปสู่โครงสร้างไฟล์มากมายที่ถูกทำให้สูงหรือต่ำกว่ามาตรฐานเพื่อจุดประสงค์ทุกประเภทเท่าที่สามารถจินตนาการได้ ตั้งแต่โครงสร้างเรียบง่ายที่สุดไปจนถึงซับซ้อนที่สุด ไฟล์คอมพิวเตอร์ส่วนมากถูกใช้โดยโปรแกรมคอมพิวเตอร์ ซึ่งสร้าง แก้ไข หรือลบไฟล์ได้ตามความต้องการพื้นฐานของโปรแกรม โปรแกรมเมอร์ผู้สร้างโปรแกรมคือผู้ตัดสินใจว่าไฟล์อะไรบ้างที่จำเป็นต้องใช้ ใช้อย่างไร และตั้งชื่ออย่างไร

ในบางกรณี โปรแกรมคอมพิวเตอร์ก็จัดดำเนินการไฟล์ต่าง ๆ ที่ทำให้ผู้ใช้คอมพิวเตอร์สามารถมองเห็นได้ เช่นในโปรแกรมประมวลคำ ผู้ใช้สามารถจัดดำเนินการไฟล์เอกสารที่ตั้งชื่อโดยผู้ใช้เอง แม้เนื้อหาของไฟล์เอกสารถูกจัดเรียงในรูปแบบที่โปรแกรมประมวลคำเข้าใจ แต่ผู้ใช้ก็สามารถตั้งชื่อ กำหนดตำแหน่งของไฟล์ และจัดหากลุ่มสารสนเทศ (เช่นคำหรือข้อความต่าง ๆ) เพื่อเก็บบันทึกลงในไฟล์นั้น

โปรแกรมประยุกต์หลายโปรแกรมบรรจุไฟล์ข้อมูลรวมเป็นไฟล์เดียวเรียกว่าไฟล์เก็บถาวร (archive file) โดยใช้เครื่องหมายบ่งชี้ภายในเพื่อแยกแยะชนิดของสารสนเทศที่ต่างกันในนั้น ประโยชน์ของไฟล์เก็บถาวรคือลดจำนวนไฟล์เพื่อให้โอนย้ายได้ง่ายขึ้น ลดการพื้นที่การจัดเก็บข้อมูล หรือเพียงเพื่อจัดระเบียบไฟล์ที่ล้าสมัย บ่อยครั้งไฟล์เก็บถาวรต้องถูกแยกออกก่อนใช้งานคราวถัดไป

### การดำเนินการไฟล์

ไฟล์ในคอมพิวเตอร์สามารถถูกสร้าง ย้าย แก้ไข ขยายขนาด ยุบขนาด และลบทิ้ง โดยส่วนมากโปรแกรมคอมพิวเตอร์ที่ทำงานการอยู่บนคอมพิวเตอร์เป็นผู้จัดกระทำการดำเนินการเหล่านี้ แต่ในขณะเดียวกันผู้ใช้คอมพิวเตอร์ก็สามารถจัดกระทำไฟล์ต่าง ๆ ตามต้องการได้ ยกตัวอย่างไฟล์ของไมโครซอฟท์ เวิร์ด โดยปกติจะถูกสร้างและแก้ไขด้วยโปรแกรมไมโครซอฟท์ เวิร์ด ตามความตอบสนองต่อคำสั่งของผู้ใช้ แต่ผู้ใช้ก็สามารถย้ายตำแหน่ง เปลี่ยนชื่อ หรือลบไฟล์เหล่านี้ได้โดยตรงด้วยโปรแกรมจัดการไฟล์เช่นวินโดวส์เอกซ์พลอเรอร์ (ในคอมพิวเตอร์วินโดวส์)

ในระบบปฏิบัติการแบบยูนิกซ์ กระบวนการต่าง ๆ ในพื้นที่ผู้ใช้ (user space) โดยปกติมิได้จัดการกับไฟล์เลยแม้แต่น้อย แต่ระบบปฏิบัติการได้จัดเตรียมระดับของการกำหนดสาระสำคัญ (abstraction) ไว้ให้ ซึ่งหมายความว่าการโต้ตอบเกือบทั้งหมดเกี่ยวกับไฟล์จากพื้นที่ผู้ใช้จะกระทำผ่านฮาร์ดลิงก์ ไฟล์ต่าง ๆ ในระบบปฏิบัติการดังกล่าวไม่มีชื่อเป็นของตัวเอง ดังนั้นฮาร์ดลิงก์จะทำหน้าที่เชื่อมโยงชื่อชื่อหนึ่งไปที่ไฟล์ (หรือไม่มีชื่อเลยก็ได้ซึ่งจะทำให้เป็นลิงก์ชั่วคราว) ทำให้กระบวนการสามารถจัดการกับชื่อเหล่านั้นเสมือนไฟล์ ตัวอย่างเช่น โปรแกรมหนึ่งในพื้นที่ผู้ใช้ไม่สามารถลบไฟล์โดยตรงได้ แต่มันสามารถลบลิงก์ไปยังไฟล์ได้ (โดยใช้คำสั่งเชลล์อาทิ rm หรือ mv ในกรณีลิงก์ไม่มีชื่อ เพียงออกจากโปรแกรม) และถ้าเคอร์เนลพบว่าไม่มีลิงก์ใด ๆ เชื่อมโยงมาที่ไฟล์แล้ว ไฟล์นั้นก็อาจถูกลบโดยเคอร์เนล ในความเป็นจริงแล้วเคอร์เนลเท่านั้นที่สามารถจัดการกับไฟล์ได้โดยตรง แต่มันก็เปิดรับการโต้ตอบทั้งหมดจากพื้นที่ผู้ใช้ด้วยไฟล์เสมือนที่ไม่เปิดเผยตัวตนต่อโปรแกรม

อรรถศาสตร์
----------

แม้ว่าโปรแกรมต่าง ๆ จัดดำเนินการไฟล์ด้วยวิธีที่หลากหลายขึ้นอยู่กับระบบปฏิบัติการและระบบไฟล์ที่เกี่ยวข้อง การดำเนินการเกี่ยวกับไฟล์โดยทั่วไปมีดังนี้

* การสร้างไฟล์ด้วยชื่อที่กำหนดให้
* การตั้งค่าแอตทริบิวต์ที่ควบคุมการดำเนินการของไฟล์
* การเปิดไฟล์เพื่อใช้เนื้อหาภายใน
* การอ่านหรือการปรับปรุงเนื้อหานั้น
* การส่งเนื้อหาปรับปรุงให้หน่วยเก็บบันทึกถาวร
* การปิดไฟล์ซึ่งทำให้หมดสิทธิ์เข้าถึงจนกว่าจะเปิดไฟล์นั้นอีกครั้ง

การระบุและการจัดการไฟล์
-----------------------

ในระบบคอมพิวเตอร์สมัยใหม่ ไฟล์ต่าง ๆ เข้าถึงได้โดยใช้ชื่อไฟล์ (filename)  ชื่อไฟล์เกี่ยวข้องโดยตรงกับไฟล์ในระบบปฏิบัติการบางระบบ แต่ในอีกระบบหนึ่ง ไฟล์ไม่มีชื่อแต่ถูกเชื่อมโยงด้วยลิงก์ที่มีชื่อดังที่ได้กล่าวมาแล้ว ในกรณีอย่างหลัง ผู้ใช้สามารถระบุชื่อของลิงก์เป็นตัวแทนของไฟล์ได้ แต่ก็อาจทำให้เกิดความเข้าใจผิด โดยเฉพาะเมื่อมีลิงก์มากกว่าหนึ่งลิงก์เชื่อมโยงไปยังไฟล์เดียวกัน

ไฟล์และโฟลเดอร์ที่จัดเรียงเป็นลำดับชั้นไฟล์ (หรือลิงก์ของไฟล์) สามารถวางไว้ในไดเรกทอรีที่ตำแหน่งต่าง ๆ หรือกล่าวอีกนัยหนึ่งคือ ไดเรกทอรี (หรือโฟลเดอร์) สามารถบรรจุรายการไฟล์หรือลิงก์ของไฟล์ สิ่งที่สำคัญอย่างยิ่งจากการนิยามนี้คือคำว่า "ไฟล์" ต้องหมายรวมถึงไดเรกทอรีด้วย จึงจะทำให้เกิดการมีอยู่ของลำดับชั้นไดเรกทอรี นั่นคือไดเรกทอรีสามารถบรรจุไดเรกทอรีย่อยอีกได้ ชื่อที่อ้างถึงไฟล์ในไดเรกทอรีโดยทั่วไปต้องมีเพียงหนึ่งเดียว กล่าวคือต้องไม่มีชื่ออื่นที่เหมือนกันปรากฏอยู่ในไดเรกทอรีหนึ่ง ๆ อย่างไรก็ตาม ในระบบปฏิบัติการบางระบบ ชื่ออาจมีข้อกำหนดคุณลักษณะของชนิดรวมอยู่ ซึ่งทำให้ไดเรกทอรีสามารถบรรจุชื่อที่เหมือนกันสำหรับชนิดของวัตถุต่างชนิดกัน เช่นไดเรกทอรีกับไฟล์

ในสภาวะแวดล้อมที่ไฟล์มีชื่อ ชื่อของไฟล์และเส้นทางไปยังไดเรกทอรีของไฟล์ต้องระบุได้เพียงหนึ่งเดียวท่ามกลางไฟล์อื่น ๆ ทั้งหมดในระบบคอมพิวเตอร์ หมายความว่าไม่สามารถมีไฟล์สองไฟล์ซึ่งมีชื่อและเส้นทางเดียวกัน ส่วนในสภาวะแวดล้อมที่ไฟล์ไม่มีชื่อ การอ้างถึงที่มีชื่อไปยังไฟล์จะมีอยู่ในเนมสเปซหนึ่ง โดยส่วนมากชื่อใด ๆ ในเนมสเปซจะอ้างถึงไฟล์จำนวนศูนย์หรือหนึ่งไฟล์เท่านั้น อย่างไรก็ตามไฟล์ใด ๆ ก็อาจถูกแทนด้วยชื่อในเนมสเปซจำนวนศูนย์ชื่อ หนึ่งชื่อ หรือมากกว่านั้นก็ได้

สายอักขระใด ๆ ของชื่อสำหรับไฟล์หรือลิงก์อาจจัดดีแล้วหรือไม่ก็ได้ขึ้นอยู่กับบริบทของการประยุกต์ใช้ ชื่อที่จัดดีแล้วหรือไม่ก็ตามขึ้นอยู่กับระบบคอมพิวเตอร์ที่กำลังใช้อยู่ คอมพิวเตอร์สมัยก่อนอนุญาตให้ตั้งชื่อไฟล์ด้วยตัวอักษรและตัวเลขเพียงไม่กี่ตัว แต่คอมพิวเตอร์สมัยใหม่สามารถตั้งชื่อไฟล์ยาวได้ (บางระบบรองรับอักขระได้ถึง 255 ตัว) ซึ่งมีตัวอักษรและตัวเลขยูนิโคดผสมกันแบบใดก็ได้ ทำให้ช่วยเข้าใจจุดประสงค์ของไฟล์ง่ายขึ้นเพียงแค่มองผ่าน ระบบคอมพิวเตอร์บางระบบอนุญาตให้มีช่องว่างในชื่อไฟล์หรือไม่ก็ได้ ความตอบสนองต่ออักษรตัวเล็กตัวใหญ่ (case sensitivity) ของชื่อไฟล์ถูกกำหนดโดยระบบไฟล์ ระบบไฟล์ยูนิกซ์ตอบสนองต่ออักษรตัวเล็กตัวใหญ่และอนุญาตให้โปรแกรมประยุกต์ระดับผู้ใช้สามารถสร้างไฟล์ที่ชื่อต่างกันเพียงอักษรตัวเล็กตัวใหญ่ของอักขระ ไมโครซอฟท์ วินโดวส์รองรับระบบไฟล์หลายแบบ แต่ละแบบก็มีนโยบายเกี่ยวกับความตอบสนองต่ออักษรตัวเล็กตัวใหญ่แตกต่างกัน ระบบไฟล์แฟต (FAT) สามารถมีไฟล์หลายไฟล์ที่ชื่อต่างกันเพียงอักษรตัวเล็กตัวใหญ่ได้ในกรณีที่ใช้โปรแกรมแก้ไขดิสก์ (disk editor) เพื่อแก้ไขชื่อไฟล์ในรายการไดเรกทอรี อย่างไรก็ตามโปรแกรมประยุกต์ต่าง ๆ ของผู้ใช้โดยปกติจะไม่อนุญาตให้สร้างไฟล์ในชื่อเดียวกันแต่ต่างกันเพียงอักษรตัวเล็กตัวใหญ่

คอมพิวเตอร์ส่วนมากจัดการไฟล์เป็นลำดับชั้นโดยใช้โฟลเดอร์ ไดเรกทอรี หรือแค็ตตาล็อก มโนทัศน์เหล่านี้เหมือนกันโดยไม่คำนึงถึงคำที่ใช้เรียก แต่ละโฟลเดอร์สามารถบรรจุไฟล์จำนวนเท่าใดก็ได้ และสามารถบรรจุโฟลเดอร์อื่นด้วยซึ่งเรียกว่าโฟลเดอร์ย่อย โฟลเดอร์ย่อยก็ยังสามารถบรรจุไฟล์และโฟลเดอร์จำนวนเท่าใดก็ได้เรื่อยไป ทำให้เกิดโครงสร้างอย่างต้นไม้ โดยมีโฟลเดอร์หลักหนึ่งโฟลเดอร์ (หรือโฟลเดอร์ราก ชื่อที่เรียกแตกต่างกันไปตามระบบปฏิบัติการ) ที่เป็นระดับบนสุดของโฟลเดอร์อื่นและไฟล์ทั้งหมด โฟลเดอร์สามารถตั้งชื่อได้เช่นเดียวกับไฟล์ (ยกเว้นโฟลเดอร์รากซึ่งมักจะไม่มีชื่อ) ประโยชน์ของโฟลเดอร์คือทำให้การจัดการไฟล์ในวิธีที่สอดคล้องกับหลักเหตุผลได้ง่าย

เมื่อคอมพิวเตอร์ใช้โฟลเดอร์ได้ นอกเหนือจากแต่ละไฟล์และโฟลเดอร์มีชื่อของมันเองแล้ว ก็ยังมีเส้นทาง (path) ของไฟล์และโฟลเดอร์อีกด้วย ซึ่งเส้นทางเป็นตัวระบุโฟลเดอร์นั้นหรือโฟลเดอร์ต่าง ๆ ที่ไฟล์หรือโฟลเดอร์นั้นวางอยู่ เส้นทางจะมีอักขระพิเศษบางตัวเช่นทับ (/) หรือทับกลับข้าง (\) เพื่อใช้แบ่งชื่อของไฟล์และโฟลเดอร์ จากตัวอย่างในภาพประกอบ เส้นทาง /Payroll/Salaries/Managers เป็นตัวระบุเพียงหนึ่งเดียวของไฟล์ชื่อ Managers ในโฟลเดอร์ชื่อ Salaries และอยู่ภายใต้โฟลเดอร์ชื่อ Payroll อีกชั้นหนึ่ง ชื่อของไฟล์และโฟลเดอร์ดังกล่าวถูกแบ่งด้วยทับ โฟลเดอร์บนสุดหรือโฟลเดอร์รากไม่มีชื่อในกรณีนี้ดังนั้นเส้นทางจึงขึ้นต้นด้วยทับ (ถ้าโฟลเดอร์รากมีชื่อ มันจะปรากฏชื่อนำหน้าทับ)

ระบบคอมพิวเตอร์จำนวนมาก (แต่ไม่ใช่ทั้งหมด) ใช้ส่วนขยายชื่อไฟล์ ซึ่งเป็นที่รู้จักอีกอย่างหนึ่งว่าชนิดไฟล์ เพื่อช่วยระบุว่าไฟล์มีข้อมูลอะไร ส่วนขยายในคอมพิวเตอร์วินโดวส์ประกอบด้วยจุดที่ท้ายชื่อไฟล์ตามด้วยตัวอักษรไม่กี่ตัวสำหรับระบุชนิดของไฟล์ อาทิ .txt คือไฟล์ข้อความธรรมดา .doc คือไฟล์เอกสารข้อความซึ่งเป็นรูปแบบไฟล์ปกติของโปรแกรมไมโครซอฟท์ เวิร์ด .jpg คือไฟล์รูปภาพซึ่งใช้การบีบอัดแบบ JPEG เป็นต้น ถึงแม้ว่าระบบคอมพิวเตอร์ใช้ส่วนขยายระบุชนิดไฟล์ แต่ระดับการรับรู้ของระบบคอมพิวเตอร์แต่ละระบบอาจไม่เหมือนกัน กล่าวคือส่วนขยายหนึ่งอาจจำเป็นในระบบหนึ่ง ในขณะที่ส่วนขยายนั้นอาจถูกมองข้ามอย่างสิ้นเชิงในอีกระบบถ้าไฟล์นั้นปรากฏขึ้น

การป้องกันไฟล์
--------------

ระบบคอมพิวเตอร์สมัยใหม่ส่วนมากได้จัดเตรียมวิธีการสำหรับป้องกันไฟล์จากความเสียหายทั้งโดยตั้งใจและไม่ตั้งใจ คอมพิวเตอร์ที่สามารถมีผู้ใช้ได้หลายคนนำสิทธิการเข้าถึงไฟล์มาใช้ควบคุมว่าใครจะสามารถแก้ไข ลบ หรือสร้างไฟล์และโฟลเดอร์ใดได้หรือไม่ได้ ตัวอย่างเช่น ผู้ใช้หนึ่ง ๆ อาจได้รับสิทธิการอ่านไฟล์หรือโฟลเดอร์หนึ่งเพียงอย่างเดียว แต่ไม่ให้แก้ไขหรือลบไฟล์หรือโฟลเดอร์นั้น หรือผู้ใช้อาจได้รับอนุญาตให้อ่านและแก้ไขไฟล์หรือโฟลเดอร์อื่น แต่ไม่ให้สั่งกระทำการไฟล์หรือโฟลเดอร์นั้นก็ได้ เป็นต้น สิทธิการเข้าถึงไฟล์อาจใช้สำหรับการอนุญาตให้ผู้ใช้จำเพาะบางรายสามารถเข้าถึงเนื้อหาของไฟล์หรือโฟลเดอร์ที่ต้องการ สิทธิการเข้าถึงไฟล์นี้ช่วยป้องกันการก้าวก่ายโดยไม่ได้รับอนุญาตหรือการทำลายสารสนเทศในไฟล์ และช่วยรักษาสารสนเทศส่วนบุคคลให้เป็นความลับจากผู้ใช้อื่นที่ไม่ได้รับอนุญาต

กลไกการป้องกันอีกอย่างหนึ่งที่ใช้ในคอมพิวเตอร์หลายระบบคือ *ตัวบ่งชี้อ่านอย่างเดียว* (read-only flag) เมื่อไฟล์ใดไฟล์หนึ่งตั้งตัวบ่งชี้นี้ (ซึ่งสามารถกระทำได้โดยโปรแกรมคอมพิวเตอร์หรือโดยผู้ใช้ที่เป็นมนุษย์) ไฟล์นั้นจะยังคงอ่านได้แต่แก้ไขไม่ได้ ตัวบ่งชี้นี้มีประโยชน์ในการป้องกันสารสนเทศวิกฤตมิให้ถูกแก้ไขหรือถูกลบ เช่นไฟล์พิเศษที่ถูกใช้โดยส่วนประกอบภายในของระบบคอมพิวเตอร์เท่านั้น บางระบบมี *ตัวบ่งชี้ซ่อน* (hidden flag) เพื่อซ่อนไฟล์บางไฟล์ไม่ให้เห็น ระบบคอมพิวเตอร์ใช้ตัวบ่งชี้นี้เพื่อซ่อนไฟล์ระบบที่สำคัญที่ผู้ใช้ทั่วไปไม่ควรเปลี่ยนแปลง

การเก็บบันทึกไฟล์
-----------------

คำอธิบายที่กล่าวมาทั้งหมดข้างต้นเป็นมโนทัศน์ของไฟล์ที่นำเสนอต่อผู้ใช้หรือระบบปฏิบัติการระดับสูง อย่างไรก็ตามไฟล์ใด ๆ ที่มีจุดประสงค์อันมีประโยชน์จะต้องมีการสำแดงเชิงกายภาพบางประการนอกเหนือจากการทดลองทางความคิด นั่นคือไฟล์ (ซึ่งเป็นแนวคิดแบบนามธรรม) ในระบบคอมพิวเตอร์จะต้องมีความคล้ายคลึงทางกายภาพโดยแท้จริงถ้ามันต้องมีอยู่ทั้งสิ้น

ในบริบททางกายภาพ ไฟล์คอมพิวเตอร์ส่วนมากถูกบันทึกอยู่บนอุปกรณ์เก็บบันทึกข้อมูลบางชนิดเช่น ฮาร์ดดิสก์ ซึ่งมักจะเป็นแหล่งที่อยู่ที่ระบบปฏิบัติการทำงานและเป็นแหล่งเก็บบันทึกไฟล์ของมัน ฮาร์ดดิสก์เป็นรูปแบบหน่วยเก็บบันทึกไม่ลบเลือนที่ใช้กันอย่างแพร่หลายตั้งแต่ต้นคริสต์ทศวรรษ 1960  หากไฟล์บรรจุสารสนเทศเพียงชั่วคราวก็อาจเก็บบันทึกไว้ในแรม ไฟล์คอมพิวเตอร์ก็สามารถเก็บบันทึกได้บนสื่อชนิดอื่นได้ในบางกรณี อาทิแถบแม่เหล็ก แผ่นซีดี แผ่นดิจิทัลอเนกประสงค์ (ดีวีดี) ซิปไดรฟ์ ยูเอสบีแฟลชไดรฟ์ ฯลฯ

ไฟล์หลายไฟล์ในระบบปฏิบัติการแบบยูนิกซ์ไม่มีความเกี่ยวข้องโดยตรงกับอุปกรณ์เก็บบันทึกทางกายภาพ /dev/null เป็นตัวอย่างหนึ่งที่สำคัญที่สุด ไฟล์ทั้งหมดที่อยู่ภายใต้ /dev, /proc และ /sys ก็เช่นกัน สิ่งเหล่านี้สามารถเข้าถึงได้ในฐานะไฟล์ในพื้นที่ผู้ใช้ แต่ความจริงแล้วมันเป็นไฟล์เสมือนซึ่งเป็นวัตถุต่าง ๆ ภายในเคอร์เนลของระบบปฏิบัติการ

การสำรองข้อมูลไฟล์
------------------

เมื่อไฟล์คอมพิวเตอร์บรรจุสารสนเทศที่สำคัญอย่างยิ่ง กระบวนการสำรองข้อมูลจึงเกิดขึ้นเพื่อป้องกันอุบัติการณ์ที่อาจทำให้ไฟล์เสียหาย การสำรองข้อมูลไฟล์ตามความหมายอย่างง่ายคือการสำเนาไฟล์นั้นไปเก็บไว้ที่ตำแหน่งอื่นแยกต่างหาก ดังนั้นถ้ามีอุบัติการณ์บางอย่างเกิดขึ้นกับคอมพิวเตอร์หรือไฟล์เหล่านั้นถูกลบโดยไม่ตั้งใจ จะสามารถกู้คืนข้อมูลไฟล์นั้นกลับมาได้

การสำรองข้อมูลไฟล์กระทำได้หลายวิธี ระบบคอมพิวเตอร์ส่วนมากได้จัดเตรียมโปรแกรมอรรถประโยชน์เพื่อช่วยในกระบวนการสำรองข้อมูล ซึ่งอาจทำให้ใช้เวลานานหากมีไฟล์จำนวนมากที่ต้องการป้องกัน ไฟล์สามารถคัดลอกข้อมูลลงสื่อชนิดถอดได้อาทิแผ่นซีดีเขียนได้หรือเทปแม่เหล็ก การคัดลอกไฟล์ไปยังฮาร์ดดิสก์อื่นในคอมพิวเตอร์เครื่องเดียวกันช่วยป้องกันความเสียหายจากดิสก์หนึ่ง แต่ไม่เพียงพอที่จะป้องกันความเสียหายเมื่อคอมพิวเตอร์ทั้งเครื่องถูกทำลาย ดังนั้นการคัดลอกไฟล์ต้องกระทำบนสื่อชนิดอื่นที่สามารถถอดออกจากคอมพิวเตอร์ แล้วเก็บรักษาไว้ในที่ที่ปลอดภัยและอยู่ห่างจากคอมพิวเตอร์

วิธีการสำรองข้อมูลแบบ *ปู่-พ่อ-ลูก* (grandfather-father-son backup) คือการสำรองข้อมูลโดยอัตโนมัติสามสำเนา สำเนา *ปู่* คือสำเนาที่เก่าที่สุดของไฟล์และสำเนา *ลูก* คือสำเนาปัจจุบัน

ระบบไฟล์และโปรแกรมจัดการไฟล์
----------------------------

วิธีการที่คอมพิวเตอร์จัดการ ตั้งชื่อ เก็บบันทึก และจัดดำเนินการไฟล์ต่าง ๆ เรียกโดยรวมว่าระบบไฟล์ คอมพิวเตอร์ส่วนมากมีระบบไฟล์อย่างน้อยหนึ่งระบบ คอมพิวเตอร์บางเครื่องอนุญาตให้ใช้ระบบไฟล์หลายระบบได้ ตัวอย่างเช่น คอมพิวเตอร์วินโดวส์รุ่นใหม่ใช้ระบบไฟล์ปกติคือเอ็นทีเอฟเอส (NTFS) แต่ก็ยังรองรับระบบไฟล์แฟต (FAT) ของเอ็มเอสดอสและวินโดวส์รุ่นเก่าด้วย ระบบไฟล์แต่ละระบบมีข้อดีข้อเสียของมันเอง แฟตแบบมาตรฐานอนุญาตให้ตั้งชื่อไฟล์เพียงแปดตัวอักษร (และส่วนขยายอีกสามตัวอักษร) โดยไม่มีช่องว่าง ในขณะที่เอ็นทีเอฟเอสอนุญาตให้ตั้งชื่อได้ยาวกว่าและสามารถมีช่องว่างได้ เช่นเราสามารถตั้งชื่อไฟล์ว่า "Payroll records" ในเอ็นทีเอฟเอส แต่เราจะถูกจำกัดให้ตั้งชื่อว่า payroll.dat ในแฟต เป็นต้น (เว้นแต่จะใช้วีแฟต ซึ่งเป็นส่วนขยายของแฟตที่ทำให้ตั้งชื่อไฟล์ยาวได้)

โปรแกรมจัดการไฟล์เป็นโปรแกรมอรรถประโยชน์ที่ช่วยให้ผู้ใช้จัดดำเนินการกับไฟล์ได้โดยตรง สามารถสร้าง ย้าย เปลี่ยนชื่อ ลบไฟล์และโฟลเดอร์ต่าง ๆ แม้ว่าโปรแกรมจะไม่อนุญาตให้เปิดอ่านเนื้อหาหรือเก็บบันทึกสารสนเทศในไฟล์ก็ตาม ระบบคอมพิวเตอร์ทุกระบบได้จัดเตรียมโปรแกรมจัดการไฟล์อย่างน้อยหนึ่งโปรแกรมสำหรับระบบไฟล์พื้นฐานของมันเอง เช่น วินโดวส์เอกซพลอเรอร์เป็นโปรแกรมจัดการไฟล์ที่ใช้กันโดยปกติในวินโดวส์ เป็นต้น

ดูเพิ่ม
-------

* บล็อก (หน่วยเก็บข้อมูล)
* การจัดการไฟล์คอมพิวเตอร์
* ลำดับชั้นข้อมูล
* การอำพรางไฟล์
* การคัดลอกไฟล์
* การลบไฟล์
* ไดเรกทอรี
* โปรแกรมจัดการไฟล์
* ชื่อไฟล์
* ขนาดไฟล์
* ระบบไฟล์
* ฐานข้อมูลรายไฟล์
* องค์ประกอบวัตถุ (วิทยาการคอมพิวเตอร์)
* สำเนาชั่วคราว

อ้างอิง
-------

1. ↑  Robert S. Casey, et al. *Punched Cards: Their Applications to Science and Industry*, 1952.
2. ↑  Martin H. Weik. Ballistic Research Laboratories Report #1115. March 1961. pp. 314-331.
3. ↑  Fernando J. Corbató et al. "An Experimental Time-Sharing System." May 3, 1962.
4. ↑  Jerome H. Saltzer *CTSS Technical Notes*. Project MIT-LCS-TR016
5. ↑  Magnetic Storage Handbook 2nd Ed. Section 2.1.1, Disk File Technology, Mee and Daniel, (c)1990,

แหล่งข้อมูลอื่น
---------------

* Data Formats ไฟล์คอมพิวเตอร์ ที่เว็บไซต์ Curlie