บทความนี้เขียนขึ้นมาแบบที่ผมต้องตั้งสติ และตั้งใจเขียนมาก ๆ เพราะมันอธิบายได้ไม่ง่ายเลย มีรายละเอียดที่จะต้องอธิบายดี ๆ ชัด ๆ โดยหวังว่าจะเข้าใจได้ง่ายที่สุด
เราอยู่ในยุคของการจัดเก็บไฟล์ไว้ในพื้นที่จัดเก็บแบบ Online ทีเรียกกันว่า Cloud ที่มีหหลากหลายยี่ห้อ หลากหลายผู้ให้บริการซึ่งทำให้เราจะต้องปรับตัว ปรับความคิด ความเข้าใจกันเพิ่มขึ้นเล็กน้อย หัวเรื่องผมเขียนว่าเป็น OneDrive Number แต่บทความนี้มิได้จะเฉพาะหรือจำกัดอยู่ที่ Microsoft OneDrive เท่านั้น หลักการและแนวทางที่ผมเขียนนี้ สามารถใช้ได้หมดกับ Dropbox หรืออื่น ๆ ที่เข้าข่ายการจัดเก็บแบบนี้
เวลาที่เราใช้ OneDrive ตามปกติเราก็จะติดตั้งโปรแกรม OneDrive เอาไว้ในเครื่องคอมพิวเตอร์ด้วย ซึ่งจะช่วยจัดการการเก็บและโอนไฟล์ขึ้นไปไว้ในพื้นที่จัดเก็บบน Cloud ให้เราแบบอัตโนมัติในทุกครั้งที่เราสร้างไฟล์ใหม่ หรือแก้ไขไฟล์ที่เรามีอยู่แล้ว เพื่อที่จะให้ไฟล์ต่าง ๆ นั้นปลอดภัย ไม่หายไป ถ้าเกิดกรณีที่ดิสค์ (HDD/SSD) ที่อยู่ในเครื่องคอมพิวเตอร์เสียหายไป
สิ่งที่เกิดขึ้นก็คือ ผู้ใช้งานทั่ว ๆ ไปก็มักจะสร้างชื่อไฟล์ยาว ๆ และเก็บไว้ในโฟลเดอร์ (Folder) ที่มีชื่อยาว ๆ เหมือนกัน และอาจจะยังมีโฟลเดอร์ซ้อนกันหลาย ๆ ชั้นเข้าไปอีก ซึ่งก็จะสร้างปัญหาให้เกิดขึ้นได้
แต่ก่อนที่จะเล่าถึงปัญหาที่เกิดขึ้น ต้องย้อนกลับไปทำความเข้าใจกับการจัดเก็บข้อมูลของคอมพิวเตอร์เสียก่อน ย้อนกลับไปไกลถึงเรื่องพื้นฐานของเลขฐาน 2 กันเลยทีเดียว เพราะว่าแท้ที่จริงแล้ว ระบบคอมพิวเตอร์จะเก็บทุกอย่างอยู่ในรูปแบบของเลขฐาน 2 ที่มีแค่ 0 กับ 1 เช่น ตัวอักษร S ที่เราเห็น แท้ที่จริงแล้วคอมพิวเตอร์จะเก็บเอาไว้ในแบบเลขฐาน 2 คือ 01010011 ซึ่งก็คือเลข 0 และ 1 รวมกัน 8 ตัว ซึ่งเท่ากับเท่ากับ 8 bits
และต่อเนื่องจากเรื่องนี้ ก็ต้องพูดถึงของข้อจำกัดของระบบปฎิบัติการ (Operating Systems) โดยเฉพาะ Microsoft Windows ที่มีข้อจำกัดของเรื่องของความยาวของชื่อโฟล์เดอร์ ชื่อไฟล์ ที่รองรับได้สูงสุดที่ 256 ตัวอักษร หรือ 2 ยกกำลัง 8 (28)
จากข้อกำหนดของ 2 ยกกำลัง 8 (28) ลองมาคิดกันต่ออีกนิด สมมุติว่าคุณมีไฟล์ชื่อ
WHO Interim policy 5 items 280159_ENG AI.docx
ลองมองและนับดู ชื่อไฟล์นี้ก็น่าจะมีความยาวเท่ากับ 39 ตัวอักษร ถ้าคุณตอบว่าใช่ คำตอบนั้นคือผิด เพราะว่าระบบการจัดเก็บไฟล์ไว้บน Cloud แท้ที่จริงก็คือไฟล์ที่อยู่บน Internet แล้วจะต้องสามารถให้เราหรือผู้ใช้งานเรียกใช้งานได้ด้วยการคลิกที่ลิงค์ เพื่อเข้าถึงไฟล์ได้ด้วย ซึ่งปัญหาก็อยู่ตรงนี้ ผมขอบอกว่าชื่อไฟล์ข้างบนไม่ใช่ 39 ตัวอักษรอย่างที่เรามองเห็น
เพราะว่า ช่องว่างที่เว้นไว้ระหว่างคำ ในการเก็บหรืออ้างอิงถึงไฟล์แบบลิงค์บน Internet นั้นจะกลายเป็น
WHO%20Interim%20policy%205%20items%20280159_ENG%20AI.docx
จึงทำให้ชื่อไฟล์ที่เราเห็นว่ามี 39 ตัวอักษร แท้ที่จริงแล้วคือ 57 ตัวอักษร เพราะทุก ๆ 1 ช่องว่างระหว่างคำ แท้ที่จริงแล้วมันจะถูกแทนด้วย %20 ในทุก ๆ จุด
ตรงนี้ผมไม่ได้คิดไปเอง นี่คือข้อกำหนดของ w3c ว่าด้วยเรื่อง “ASCII Encoding Reference” กำหนดเอาไว้เป็นมาตรฐานของ Open Web Platform ที่สามารถไปหาอ่านเพิ่มเติมได้ www.w3schools.com/tags/ref_urlencode.asp
จากมาตรฐานนี้เอง ให้ลองนึกภาพว่าถ้าคุณมีชื่อโฟลเดอร์ยาว ๆ มีเว้นวรรค แล้วซ้อนกันหลาย ๆ ชั้น แล้วยังมีชื่อไฟล์เอกสารยาว ๆ อีกด้วย พอถึงจุดหนึ่ง ไฟล์หรือโฟล์นั้นก็จะไม่สามารถเข้าถึงได้ หรือไม่สามารถเปิดไฟล์ได้ในที่สุด ซึ่งตรงนี้มีผลไปถึงการใช้งาน Cloud Storage ด้วย
ลองดูตัวอย่างนี้ ถ้าผมมีชื่อโฟล์เดอร์และไฟล์ยาว ๆ แบบนี้
ถ้าเอามานับจำนวนตัวอักษรทั้งหมดที่รวม %20 ที่หมายถึงช่องว่าระหว่างคำนั้น ก็จะได้ความยาวเท่ากับ 292 ตัวอักษร เกินข้อจำกัดที่ 256 ตัวอักษรไปไกลแล้ว ซึ่งจะทำให้ไฟล์นี้อาจจะเปิดไม่ได้เลย รวมถึงจะไม่สามารถ upload ขึ้นไปบน Cloud ได้ด้วย
สิ่งที่คุณต้องทำ เพื่อทีจะไม่ใช้เกิดปัญหานี้ก็คือ ถ้าคุณจำเป็นจะต้องตั้งชื่อไฟล์หรือชื่อโฟลเดอร์แบบยาว ๆ ให้เปลี่ยนช่องว่างระหว่างคำ ให้เป็นเครื่องหมายขีดกลาง – หรือ Hyphen แทน ซึ่งจะทำให้แทนที่จะใช้ 3 ตัวอักษร ก็จะกลายมาเป็น 1 ตัวอักษรแทน ซึ่งทำให้ความยาวของโฟล์เดอร์และไฟล์เดียวกัน แทนที่จะเป็น 292 ตัวอักษร ก็กลายมาเป็น 242 ตัวอักษรในทันที
แต่คำแนะนำที่ดีที่สุด ก็คือไม่ควรที่จะสร้างโฟล์เดอร์ซ้อนกันหลาย ๆ ชั้น และควรจะตั้งชื่อโฟลเดอร์และชื่อไฟล์ให้สั้นที่สุดเท่าที่จะทำได้
แต่ถ้าคุณมาถึงจุดนั้นแล้ว ชื่อโฟล์เดอร์หรือชื่อไฟล์มีความยาวรวมกันแล้วเกิน 256 ตัวอักษรไปไกลมาก ๆ แล้วในที่สุดคุณก็เปิดไฟล์หรือโฟล์เดอร์ไม่ได้อีกต่อไป แล้วจะแก้ไขปัญหาได้อย่างไร เพราะถ้าคุณเข้าไปที่โฟล์เดอร์นั้นไม่ได้ คุณก็ไม่สามารถที่จะย้ายให้มันไปอยู่ที่จุดอื่น ๆ ที่มีชื่อโฟลเดอร์ที่สั้นกว่าได้ เอาหละสิ…
แต่ผมมีทางออกให้ อาศัยคำสั่งโบราณที่มีมาตั้งแต่สมัย DOS (Disk Operating System) ที่มาถึง Microsoft Windows 11 แล้ว คำสั่งนี้ก็ยังไม่ได้ถูกตัดทั้งไป และผมก็ยังใช้มันอยู่เรื่อย ๆ คำสั่งนี้คือ Subst ที่ผมไม่รู้ว่ามันย่อมาจากคำเต็ม ๆ ว่าอะไร แต่ก็ได้ใช้งานคำสั่งนี้มานานาน จนจำไม่ได้ว่ากี่ปีแล้ว รูปแบบของคำสั่งมีดังนี้
ซึ่งสามารถใช้จำลองชื่อโฟล์เดอร์ยาว ๆ ให้กลายมาเป็น Drive ใหม่ขึ้นมา ทำให้เราตัดข้ามความยาวของโฟล์เดอร์ต่าง ๆ ไปเลย ไปนับกันที่ 1 ใหม่จากจุดที่เราต้องการ สมมติว่าคุณเข้าไปอ่านข้อมูลได้แค่ที่โฟลเดอร์นี้
“D:\iamSK\Project Managements\04. Technical and Programmatic\02. Workplanning and Adaptive Management\01. Project Branding and Marking\02. Comms Products\”
ที่จุดที่ลึกไปกว่านี้คุณไม่สามารถเปิดเข้าไปได้แล้ว ตรงนี้คำสั่ง Subst จะกลายมาเป็นพระเอกของเรา ให้คุณออกไปที่ Command Prompt แล้วพิมพ์คำสั่งตามนี้
Subst X: “D:\iamSK\Project Managements\04. Technical and Programmatic\02. Workplanning and Adaptive Management\01. Project Branding and Marking\02. Comms Products\”
*ให้สังเกตุว่าชื่อโฟล์เดอร์ทั้งหมด อยู่ในหรือครอบเอาไว้ด้วยเครื่องหมายคำพูด ” …. ” เพราะว่าชื่อโฟล์เดอร์มีเว้นช่องว่าง จึงต้องใส่เครื่องหมายคำพูดครอบเอาไว้ทั้งหมด ให้ DOS เข้าใจว่านี่คือคำหรือประโยคยาว ๆ ประโยคเดียว
ซึ่งแปลได้ว่า ให้เอาชื่อโฟล์เดอร์ “D:\iamSK\Project Managements\04. Technical and Programmatic\02. Workplanning and Adaptive Management\01. Project Branding and Marking\02. Comms Products\” ยาว ๆ อันนี้ จำลองให้กลายมาเป็น Drive X แล้วก็จะทำให้เราสามารถเข้าถึงไฟล์หรือโฟลเตอร์ที่อยู่ในระดับที่ลึกลงไปได้แล้ว
จากนั้นคุณก็จะสามารถย้ายโฟล์เดอร์และไฟล์ที่อยู่ลึก ๆ นั้น ให้ไปอยู่ในจุดอื่น ๆ ที่ไม่ซ้อนลึกจนเกินไป ด้วยการใช้คำสั่ง Cut , Paste ได้ตามปกติ ซึ่งก็จะทำให้สามารถแก้ปัญหานี้ได้ในที่สุด
ซึ่งตัว X Drive ที่เราสร้างด้วยคำสั่ง Subst นี้จะใช้งานได้ชั่วคราว จะหายไปเมื่อคุณทำการ Restart คอมพิวเตอร์ หรือพิมพ์คำสั่ง
Subst X: /D
เพื่อทำการลบ Drive X ทิ้งไป
บทความนี้ค่อนข้างยาว ผมเชื่อว่าจะเป็นประโยชน์ของคนที่อาจจะเจอปัญหาของชื่อโฟล์เดอร์และชื่อไฟล์ยาว ๆ แล้วเข้าถึงไม่ได้ และยังมีเทคนิคในการตั้งชื่อไฟล์ให้สั้นลงด้วยการไม่ใช้ช่องว่าง โดยให้แทนด้วยเครื่องหมาย ขีดกลาง – หรือ Hyphen ก็จะช่วยลดความยาวของชื่อโฟลเดอร์ หรือชื่อไฟล์ได้
แต่ผมมีคำถามต่อ… แล้วถ้าเราใช้เครื่องหมายขีดเส้นใต้ _ หรือ Underline แทน เครื่องหมาย ขีดกลาง – หรือ Hyphen หละ มันจะเป็นอย่างไร ควรหรือไม่ควรทำ? ลองคิดหาคำตอบดูนะครับ
–iamSK