เมื่อพยายามลบไฟล์หรือโฟลเดอร์บนระบบ อาจเจอข้อความ 'Invalid file handle' ข้อผิดพลาดนี้เกิดเมื่อชื่อโฟลเดอร์หรือไฟล์ที่พยายามลบเป็น reserved name Windows OS ไม่รองรับชื่อ/ชื่อเล่นบางอย่าง ทำให้ File Explorer ห้ามตั้งชื่อโฟลเดอร์/ไฟล์เป็น reserved name แต่หากได้ไฟล์จากสมาร์ทโฟนหรือ OS อื่น เช่น Linux จะได้ข้อผิดพลาดนี้ตอนพยายามลบ

Microsoft Naming Conventions
Microsoft Naming Conventions กำหนดว่าไฟล์หรือโฟลเดอร์บนระบบไม่ควรชื่อ CON, PRN, AUX, NUL, COM1, COM2, COM3, COM4, COM5, COM6, COM7, COM8, COM9, LPT1, LPT2, LPT3, LPT4, LPT5, LPT6, LPT7, LPT8, และ LPT9 เพราะเป็น reserved names ใน Windows OS หมายถึงใช้เพื่อวัตถุประสงค์เฉพาะโดย Windows OS ไม่ควรใช้ที่อื่น ควหลีกเลี่ยงชื่อข้างต้นตามด้วย extension ทันที เช่น NUL.txt หากต้องการรายละเอียดเพิ่ม อ่าน บทความนี้ บนเว็บไซต์ Microsoft
สาเหตุของข้อความข้อผิดพลาด 'Invalid File Handle' บน Windows 10
เหตุผลชัดเจนหลังอ่าน Naming Conventions ของ Microsoft
- ชื่อไฟล์/โฟลเดอร์เป็น Reserved Name: ข้อผิดพลาดปรากฏเมื่อไฟล์ที่พยายามลบมี reserved name การใช้ reserved names ห้ามโดย Microsoft และไม่ควรเล่นกับมัน
ตอนนี้คุณรู้ Naming Conventions และสาเหตุแล้ว แก้ไขได้ด้วยวิธีด้านล่าง
การลบไฟล์หรือโฟลเดอร์
ไฟล์ที่มี reserved name อาจใช้งานไม่ได้ เพราะไม่สามารถใช้งานได้ และลบไม่ได้ด้วยขั้นตอนมาตรฐาน ต้องใช้คำสั่ง command prompt
หากเจอข้อผิดพลาดขณะ ลบ directory ทำได้โดยขั้นตอน:
- กด Windows Key + X เลือก Command Prompt (Admin) เปิด elevated command prompt
- เปิด elevated command prompt แล้ว พิมพ์คำสั่ง:
rd \\.\c:\documents\con /S /Q

- ในคำสั่งด้านบน แทนที่ path ตามต้องการ แต่อย่าลบ '\\.' หน้า path ตัวอย่างอื่น:
rd \\.\E:\con /S /Q
หมายเหตุ:
พารามิเตอร์ /S บอกคำสั่ง rd ให้ลบ sub-directories ทั้งหมดใน directory ที่ระบุ พารามิเตอร์ /Q บอกให้ลบเนื้อหาเงียบๆ (ไม่มี prompt) นอกจากนี้ \\. ใช้หมายถึงระบบปัจจุบัน
หากพยายาม ลบไฟล์ ทำดังนี้:
- เปิด elevated command prompt ตามข้างต้น
- พิมพ์คำสั่งด้านล่าง Enter:
del \\.\c:\Temp\con.txt

- ลบไฟล์ ต้องระบุ extension ของไฟล์ และใช้คำสั่ง del แทน rd
เสร็จแล้ว คุณน่าจะลบไฟล์/โฟลเดอร์ออกจากระบบได้แล้ว