ห้ามใช้อักขระใด ๆ ในชื่อไฟล์ OS X


6

มีรายการอักขระที่ไม่อนุญาตให้ใช้ในชื่อไฟล์และเส้นทางใน OS X หรือไม่


การอ้างอิงที่มีประโยชน์: บทความวิกิพีเดียชื่อไฟล์และแก้ไข Unix / Linux / POSIX ชื่อไฟล์
Dennis Williamson

คำตอบ:


5

? ได้รับอนุญาต.

เท่านั้น0x00( NUL) และ:ถูกห้ามสำหรับ HFS ​​+

:อย่างไรก็ตามถูกสลับในซอฟต์แวร์ที่ใช้ POSIX เป็น/:

ข้อความแสดงแทน ข้อความแสดงแทน

ขอบคุณ Graham Lee ที่แก้ไขเรื่องนี้ให้ฉัน!


4
อันที่จริง ':' ถูกห้ามใน HFS + แต่ห้ามใช้ '/' ในไลบรารี POSIX ดังนั้นระบบไฟล์เสมือนของ Mac OS X จึงยอมรับ ':' ปฏิเสธ '/' แต่ต้องสลับไปมาเมื่อต้องรับมือกับ HFS ​​+ มันค่อนข้างสับสน :)

4

ดังที่ Daniel Beck กล่าวว่า NUL และ ":" (aka "/" ในบริบท POSIX) เป็นสิ่งต้องห้าม อย่างไรก็ตามมันซับซ้อนกว่านั้น ชื่อไฟล์ HFS + ต้องถูกจัดเก็บในรูปแบบ UTF-8 ในรูปแบบที่สมบูรณ์พร้อมด้วยอักขระการเขียนที่จัดเก็บตามลำดับมาตรฐาน (ดูtn1150 ) ดังนั้นคำตอบสำหรับคำถามของคุณขึ้นอยู่กับความหมายของ "ตัวละคร":

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

ถ้าคุณหมายถึงจุดรหัส Unicode กฎการสลายตัวที่ยังคงห้ามจุดที่แสดงถึงตัวละครที่เน้นเสียงใด ๆ (มันจะต้องเก็บไว้แทนตัวอักษรฐาน + สำเนียงรวม) (ดูtn1150table )


1
คำตอบนี้ทำให้เข้าใจผิด บนดิสก์ชื่อไฟล์ HFS + จะถูกเก็บเป็น UTF-16 ไม่ใช่ UTF-8
Chris Suter

1
ตัวอักษร ':' จะถูกสลับกับ '/' ด้วย อย่างไรก็ตามคุณไม่จำเป็นต้องรู้อะไรเลย การใช้งานดิสก์ไม่เกี่ยวข้อง POSIX ทั้งหมดโทรเข้าและออกจากเคอร์เนลใช้ UTF-8 และในบริบทนั้น '/' เป็นตัวคั่นพา ธ และ ':' ได้รับอนุญาตและไม่จำเป็นต้องถูกย่อยสลาย
Chris Suter

1
ชื่อไฟล์จะไม่ย่อยสลายอย่างสมบูรณ์ (NFD) เช่นกัน HFS + ใช้ตัวแปรของ NFD โดยที่ตัวละครบางตัวอยู่ในรูปแบบที่ประกอบด้วย (ดูที่การเข้ารหัสข้อความใน VFSและคำตอบนี้ )
Lri

1

ตามที่วิกิพีเดียhttp://en.wikipedia.org/wiki/HFS_Plusอนุญาตให้ใช้อักขระแบบยูนิโค้ดได้รวมถึง NUL ด้วย แต่แอปพลิเคชันจำนวนมากจะกำหนดข้อ จำกัด ของตนเองเช่น '/' เป็นต้น


1
สิ่งนี้ไม่ได้ตอบคำถามอย่างเต็มที่เหมือนกับคำตอบอื่น ๆ ระบบไฟล์อาจรองรับอักขระทุกตัวได้เป็นอย่างดี แต่เลเยอร์ OS นั้นซับซ้อนกว่า ดูคำตอบของ Gordon และ Daniel
slhck
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.