Qiodevice ไบนารี ตัวเลือก


Qt เอกสาร QFile Class 11 สมาชิกสาธารณะคงรับมาจาก QObject เพิ่มเติมสมาชิกสืบทอด 1 ทรัพย์สินที่สืบทอดมาจาก QObject 1 สล็อตสาธารณะสืบทอดมาจากสัญญาณ QObject 6 สืบทอดมาจาก QIODevice 2 สัญญาณที่สืบทอดมาจาก QObject 3 ป้องกันฟังก์ชันสืบทอดมาจาก QFileDevice 5 หน้าที่ป้องกันสืบทอดจาก QIODevice 9 ป้องกันฟังก์ชัน สืบทอดจาก QObject รายละเอียดโดยละเอียดคลาส QFile มีอินเทอร์เฟซสำหรับการอ่านและเขียนไฟล์ QFile เป็นอุปกรณ์ IO สำหรับการอ่านและเขียนข้อความและไฟล์ไบนารีและทรัพยากร QFile อาจถูกใช้ด้วยตัวเองหรือสะดวกกว่าด้วย QTextStream หรือ QDataStream ชื่อไฟล์จะถูกส่งผ่านโดยปกติใน constructor แต่คุณสามารถตั้งค่าได้ทุกเมื่อโดยใช้ setFileName () QFile คาดว่าตัวคั่นไฟล์จะคำนึงถึงระบบปฏิบัติการ ไม่สนับสนุนการใช้ตัวคั่นอื่น ๆ (เช่น) คุณสามารถตรวจสอบการดำรงอยู่ของไฟล์โดยใช้ existing () และลบไฟล์โดยใช้ remove () (QFileInfo และ QDir มีการดำเนินการที่เกี่ยวข้องกับระบบไฟล์ขั้นสูงขึ้น) ขนาดของไฟล์จะถูกส่งกลับตามขนาด () คุณสามารถรับตำแหน่งไฟล์ปัจจุบันโดยใช้ pos () หรือย้ายไปที่ตำแหน่งไฟล์ใหม่โดยใช้ seek () ถ้าคุณได้มาถึงจุดสิ้นสุดของไฟล์แล้ว atEnd () จะคืนค่า true การอ่านไฟล์โดยตรงตัวอย่างต่อไปนี้อ่านบรรทัดไฟล์ข้อความตามบรรทัด: ธง QIODevice :: Text ที่ส่งผ่านไปยัง open () บอกให้ Qt เปลี่ยน terminators บรรทัดของ Windows (rn) เป็น terminators C (n) โดยค่าเริ่มต้น QFile จะถือว่าไบนารีกล่าวคือไม่ทำการแปลงใด ๆ ในไบต์ที่เก็บอยู่ในไฟล์ การใช้สตรีมเพื่ออ่านไฟล์ตัวอย่างถัดไปใช้ QTextStream เพื่ออ่านบรรทัดไฟล์ข้อความตามบรรทัด: QTextStream ดูแลการแปลงข้อมูล 8 บิตที่เก็บอยู่ในดิสก์ลงใน 16 บิต Unicode QString โดยค่าเริ่มต้นระบบจะถือว่าใช้การเข้ารหัสแบบ 8 บิตในระบบของผู้ใช้ (เช่น UTF-8 ในระบบปฏิบัติการยูนิกซ์ส่วนใหญ่ดูที่ QTextCodec :: codecForLocale () เพื่อดูรายละเอียด) ซึ่งสามารถเปลี่ยนแปลงได้โดยใช้ QTextStream :: setCodec () ในการเขียนข้อความเราสามารถใช้ operatorltlt () ซึ่งมีจำนวนมากเกินไปที่จะใช้ QTextStream ในด้านซ้ายและชนิดข้อมูลต่างๆ (รวมถึง QString) ทางด้านขวา: QDataStream คล้ายกับที่คุณสามารถใช้ operatorltlt () เพื่อเขียนข้อมูลและ operatorgtgt () อ่านกลับ ดูเอกสารประกอบของชั้นเรียนเพื่อดูรายละเอียด เมื่อคุณใช้ QFile QFileInfo และ QDir เพื่อเข้าถึงระบบไฟล์ด้วย Qt คุณสามารถใช้ชื่อไฟล์แบบ Unicode ใน Unix ชื่อไฟล์เหล่านี้จะถูกแปลงเป็นการเข้ารหัสแบบ 8 บิต ถ้าคุณต้องการใช้ C API มาตรฐาน (ltcstdiogt หรือ ltiostreamgt) หรือ API เฉพาะแพลตฟอร์มเพื่อเข้าถึงไฟล์แทน QFile คุณสามารถใช้ฟังก์ชัน encodeName () และ decodeName () เพื่อแปลงระหว่างชื่อไฟล์ Unicode และชื่อไฟล์ 8 บิต ใน Unix มีไฟล์ระบบพิเศษ (เช่น in proc) ซึ่งขนาด () จะคืนค่าเป็น 0 เสมอ แต่คุณอาจยังสามารถอ่านข้อมูลจากไฟล์ดังกล่าวได้มากขึ้นข้อมูลจะถูกสร้างขึ้นเพื่อตอบสนองต่อการเรียกอ่าน ( ) อย่างไรก็ตามในกรณีนี้คุณไม่สามารถใช้ atEnd () เพื่อพิจารณาว่ามีข้อมูลอ่านมากขึ้น (ตั้งแต่ atEnd () จะเป็นจริงสำหรับไฟล์ที่อ้างว่ามีขนาด 0) แต่คุณควรจะเรียก readAll () หรือเรียก read () หรือ readLine () ซ้ำ ๆ จนกว่าจะไม่มีการอ่านข้อมูลเพิ่มเติม ตัวอย่างต่อไปใช้ QTextStream เพื่ออ่าน procmodules บรรทัดโดยบรรทัด: ไม่เหมือนกับการใช้งาน QIODevice อื่น ๆ เช่น QTcpSocket QFile ไม่ได้ปล่อยสัญญาณ aboutToClose (), bytesWritten () หรือ readyRead () รายละเอียดการใช้งานนี้หมายความว่า QFile ไม่เหมาะสำหรับการอ่านและเขียนไฟล์บางประเภทเช่นไฟล์อุปกรณ์บนแพลตฟอร์มยูนิกซ์ ปัญหาเฉพาะของแพลตฟอร์มสิทธิ์ของแฟ้มจะได้รับการจัดการอย่างแตกต่างกันในระบบที่เหมือน Unix และ Windows ในไดเร็กทอรีที่ไม่สามารถเขียนได้บนระบบยูนิกซ์เหมือนไม่สามารถสร้างไฟล์ได้ นี่ไม่ใช่กรณีของ Windows ตัวอย่างเช่นไดเร็กทอรี My Documents มักไม่สามารถเขียนได้ แต่ก็ยังสามารถสร้างไฟล์ได้ Qts ความเข้าใจเกี่ยวกับสิทธิ์ของแฟ้มมี จำกัด ซึ่งมีผลโดยเฉพาะอย่างยิ่ง QFile :: setPermissions () ฟังก์ชัน ใน Windows Qt จะตั้งค่าสถานะแบบอ่านอย่างเดียวแบบเดิมเท่านั้นและเมื่อไม่มีการเขียนค่าสถานะไว้ Qt ไม่สามารถจัดการกับรายการควบคุมการเข้าถึง (ACLs) ซึ่งทำให้ฟังก์ชันนี้ไม่มีประโยชน์มากสำหรับวอลุ่มแบบ NTFS อาจยังคงใช้สำหรับ USB sticks ที่ใช้ระบบไฟล์ VFAT POSIX ACL ไม่ได้รับการจัดการเช่นกัน ประเภทสมาชิกเอกสาร typedef QFile DecoderFn นี่คือ typedef สำหรับตัวชี้ไปยังฟังก์ชันที่มีลายเซ็นต่อไปนี้: QDataStream ไม่ได้หมายถึงการสร้างสตรีมที่มีแบบพกพาในแอ็พพลิเคชันอื่น (จะหมายถึงการพกพาข้าม OS และ Qt เวอร์ชันต่างๆ แต่ใช้งานได้โดย Qt เสมอ) รูปแบบนี้ไม่ได้รับการรับประกันว่ามีเสถียรภาพดังนั้นจึงสามารถทำงานได้ในวันนี้ จากเอกสาร: รูปแบบไบนารี QDataStreams มีการพัฒนาตั้งแต่ Qt 1.0 และมีแนวโน้มที่จะพัฒนาต่อไปเพื่อสะท้อนการเปลี่ยนแปลงที่ทำใน Qt เมื่อป้อนหรือส่งออกชนิดที่ซับซ้อนสิ่งสำคัญมากคือต้องตรวจสอบให้แน่ใจว่ามีการใช้สตรีมเวอร์ชันเดียวกัน (เวอร์ชัน ()) สำหรับการอ่านและเขียน ถ้าคุณต้องการใช้ข้อมูลร่วมกันให้ใช้รูปแบบเอาต์พุตที่มีไว้สำหรับการแชร์เช่น XML, Json หรือในกรณีง่ายๆเช่นนี้เพียงแค่เขียนตัวเลขเป็นสตริง ANSI ลงในไฟล์ข้อความ เพียงแทนที่ QTextStream สำหรับ QDataStream. Qt Documentation QFile Class 5 หน้าที่ได้รับการป้องกันที่ได้รับมาจาก QIODevice 8 ฟังก์ชันที่ได้รับการป้องกันที่สืบทอดมาจาก QObject สมาชิกเพิ่มเติมที่สืบทอดมา 1 คุณสมบัติที่สืบทอดมาจากช่องสาธารณะ QObject 1 ที่สืบทอดมาจากสัญญาณ QObject 4 ที่สืบทอดมาจากสัญญาณ QIODevice 1 ที่สืบทอดมาจาก QObject 5 ฟังก์ชันที่ได้รับการป้องกัน จาก QIODevice 8 ฟังก์ชันที่ได้รับการป้องกันที่สืบทอดมาจาก QObject รายละเอียดโดยละเอียดคลาส QFile ให้อินเตอร์เฟสสำหรับอ่านและเขียนไฟล์ QFile เป็นอุปกรณ์ IO สำหรับการอ่านและเขียนข้อความและไฟล์ไบนารีและทรัพยากร QFile อาจถูกใช้ด้วยตัวเองหรือสะดวกกว่าด้วย QTextStream หรือ QDataStream ชื่อไฟล์จะถูกส่งผ่านโดยปกติใน constructor แต่คุณสามารถตั้งค่าได้ทุกเมื่อโดยใช้ setFileName () QFile คาดว่าตัวคั่นไฟล์จะคำนึงถึงระบบปฏิบัติการ ไม่สนับสนุนการใช้ตัวคั่นอื่น ๆ (เช่น) คุณสามารถตรวจสอบการดำรงอยู่ของไฟล์โดยใช้ existing () และลบไฟล์โดยใช้ remove () (QFileInfo และ QDir มีการดำเนินการเกี่ยวกับระบบไฟล์ขั้นสูงขึ้น) ขนาดของไฟล์จะถูกส่งกลับตามขนาด () คุณสามารถรับตำแหน่งไฟล์ปัจจุบันโดยใช้ pos () หรือย้ายไปที่ตำแหน่งไฟล์ใหม่โดยใช้ seek () ถ้าคุณได้มาถึงจุดสิ้นสุดของไฟล์แล้ว atEnd () จะคืนค่า true การอ่านไฟล์โดยตรงตัวอย่างต่อไปนี้อ่านบรรทัดไฟล์ข้อความตามบรรทัด: ธง QIODevice :: Text ที่ส่งผ่านไปยัง open () บอกให้ Qt เปลี่ยน terminators บรรทัดของ Windows (rn) เป็น terminators C (n) โดยค่าเริ่มต้น QFile จะถือว่าไบนารีกล่าวคือไม่ทำการแปลงใด ๆ ในไบต์ที่เก็บอยู่ในไฟล์ การใช้สตรีมเพื่ออ่านไฟล์ตัวอย่างถัดไปใช้ QTextStream เพื่ออ่านบรรทัดไฟล์ข้อความตามบรรทัด: QTextStream ดูแลการแปลงข้อมูล 8 บิตที่เก็บอยู่ในดิสก์ลงใน 16 บิต Unicode QString โดยค่าเริ่มต้นระบบจะถือว่าใช้ระบบเข้ารหัสแบบ 8 บิตของผู้ใช้ (เช่น ISO 8859-1 สำหรับส่วนใหญ่ของยุโรปดู QTextCodec :: codecForLocale () เพื่อดูรายละเอียด) ซึ่งสามารถเปลี่ยนแปลงได้โดยใช้ setCodec () ในการเขียนข้อความเราสามารถใช้ operatorltlt () ซึ่งมีจำนวนมากเกินไปที่จะใช้ QTextStream ในด้านซ้ายและชนิดข้อมูลต่างๆ (รวมถึง QString) ทางด้านขวา: QDataStream คล้ายกับที่คุณสามารถใช้ operatorltlt () เพื่อเขียนข้อมูลและ operatorgtgt () อ่านกลับ ดูเอกสารประกอบของชั้นเรียนเพื่อดูรายละเอียด เมื่อคุณใช้ QFile QFileInfo และ QDir เพื่อเข้าถึงระบบไฟล์ด้วย Qt คุณสามารถใช้ชื่อไฟล์แบบ Unicode ใน Unix ชื่อไฟล์เหล่านี้จะถูกแปลงเป็นการเข้ารหัสแบบ 8 บิต ถ้าคุณต้องการใช้ C API มาตรฐาน (ltcstdiogt หรือ ltiostreamgt) หรือ API เฉพาะแพลตฟอร์มเพื่อเข้าถึงไฟล์แทน QFile คุณสามารถใช้ฟังก์ชัน encodeName () และ decodeName () เพื่อแปลงระหว่างชื่อไฟล์ Unicode และชื่อไฟล์ 8 บิต ใน Unix มีไฟล์ระบบพิเศษ (เช่น in proc) ซึ่งขนาด () จะคืนค่าเป็น 0 เสมอ แต่คุณอาจยังสามารถอ่านข้อมูลจากไฟล์ดังกล่าวได้มากขึ้นข้อมูลจะถูกสร้างขึ้นเพื่อตอบสนองต่อการเรียกอ่าน ( ) อย่างไรก็ตามในกรณีนี้คุณไม่สามารถใช้ atEnd () เพื่อพิจารณาว่ามีข้อมูลอ่านมากขึ้น (ตั้งแต่ atEnd () จะเป็นจริงสำหรับไฟล์ที่อ้างว่ามีขนาด 0) แต่คุณควรจะเรียก readAll () หรือเรียก read () หรือ readLine () ซ้ำ ๆ จนกว่าจะไม่มีการอ่านข้อมูลเพิ่มเติม ตัวอย่างต่อไปใช้ QTextStream เพื่ออ่าน procmodules บรรทัดโดยบรรทัด: ไม่เหมือนกับการใช้งาน QIODevice อื่น ๆ เช่น QTcpSocket QFile ไม่ได้ปล่อยสัญญาณ aboutToClose (), bytesWritten () หรือ readyRead () รายละเอียดการใช้งานนี้หมายความว่า QFile ไม่เหมาะสำหรับการอ่านและเขียนไฟล์บางประเภทเช่นไฟล์อุปกรณ์บนแพลตฟอร์มยูนิกซ์ ปัญหาเฉพาะของแพลตฟอร์มสิทธิ์ของแฟ้มมีการจัดการที่แตกต่างกันบน LinuxMac OS X และ Windows ในไดเร็กทอรีที่ไม่สามารถเขียนได้บน Linux ไฟล์ไม่สามารถสร้างขึ้นได้ นี่ไม่ใช่กรณีของ Windows ตัวอย่างเช่นไดเร็กทอรี My Documents มักไม่สามารถเขียนได้ แต่ก็ยังสามารถสร้างไฟล์ได้ ประเภทสมาชิกเอกสาร typedef QFile DecoderFn นี่คือ typedef สำหรับตัวชี้ไปยังฟังก์ชันที่มีลายเซ็นต่อไปนี้: ไฟล์สามารถปฏิบัติการได้โดยทุกคน คำเตือน: เนื่องจากความแตกต่างในแพลตฟอร์มที่สนับสนุนโดย Qt ความหมายของ ReadUser, WriteUser และ ExeUser ขึ้นอยู่กับแพลตฟอร์ม: ใน Unix สิทธิ์ของเจ้าของไฟล์จะถูกส่งคืนและใน Windows จะมีการคืนสิทธิของผู้ใช้ปัจจุบัน ลักษณะการทำงานนี้อาจเปลี่ยนแปลงในรุ่น Qt ในอนาคต โปรดทราบว่า Qt ไม่ได้ตรวจสอบสิทธิ์ในระบบไฟล์ NTFS โดยค่าเริ่มต้นเพราะอาจทำให้ประสิทธิภาพการจัดการไฟล์ลดลงอย่างมาก เป็นไปได้ที่จะบังคับให้ตรวจสอบสิทธิ์ใน NTFS โดยรวมรหัสต่อไปนี้ในแหล่งข้อมูลของคุณ: การตรวจสอบสิทธิ์จะเปิดแล้วและปิดโดยการเพิ่มและลด qtntfspermissionlookup โดย 1. ประเภทสิทธิ์คือ typedef สำหรับ QFlags ltPermissiongt เก็บค่าหรือ OR ของค่าอนุญาต typedef QFile PermissionSpec สมาชิกเอกสารคุณสมบัติ QFile QFile (const QString amp name) สร้างไฟล์ใหม่เพื่อแสดงไฟล์ที่มีชื่อ QFile QFile (QObject parent) สร้างอ็อบเจ็กต์ไฟล์ใหม่กับ parent ที่กำหนด QFile QFile (const QString amp name. QObject parent) สร้างอ็อบเจ็กต์ไฟล์ใหม่พร้อมด้วย parent เพื่อแสดงไฟล์ที่มีชื่อที่ระบุ ทำลายวัตถุของแฟ้มปิดหากจำเป็น เสมือน bool QFile atEnd () const กลับค่า true ถ้าไฟล์ถึงปลายทางแล้วส่งกลับค่า false สำหรับไฟล์เปล่าทั่วไปบน Unix (เช่นใน proc) ฟังก์ชันนี้จะส่งคืนค่าจริงเนื่องจากระบบไฟล์รายงานว่าขนาดของไฟล์ดังกล่าวเป็น 0 ดังนั้นคุณจึงไม่ควรขึ้นอยู่กับ atEnd () เมื่ออ่านข้อมูลจากไฟล์ดังกล่าว แต่เรียกอ่าน () จนกว่าจะไม่สามารถอ่านข้อมูลได้อีก เสมือนโมฆะ QFile ปิด () เรียก QFile :: flush () และปิดไฟล์ ข้อผิดพลาดจากการล้างจะถูกละเว้น bool QFile คัดลอก (const QString amp newName) คัดลอกไฟล์ที่ระบุโดย fileName () ไปยังไฟล์ชื่อ newName ส่งกลับค่าจริงถ้าสำเร็จมิฉะนั้นจะส่งกลับค่าเท็จ โปรดทราบว่าหากไฟล์ที่มีชื่อ newName มีอยู่แล้วให้ copy () ส่งคืน false (เช่น QFile จะไม่เขียนทับ) แฟ้มต้นฉบับถูกปิดก่อนที่จะถูกคัดลอก static bool QFile คัดลอก (const qString amp fileName. const newSMS newName) เป็นฟังก์ชันที่มากเกินไป คัดลอกไฟล์ fileName เป็น newName ส่งกลับค่าจริงถ้าสำเร็จมิฉะนั้นจะส่งกลับค่าเท็จ หากไฟล์ที่มีชื่อ newName มีอยู่แล้วให้ copy () ส่งคืน false (เช่น QFile จะไม่เขียนทับ) QFile QString แบบคงที่ decodeName (const QByteArray amp localFileName) นี้จะย้อนกลับของ QFile :: encodeName () โดยใช้ localFileName QFile QString แบบคงที่ decodeName (const char localFileName) นี่เป็นฟังก์ชันที่มากเกินไป ส่งคืนค่า Unicode เวอร์ชันของ localFileName ที่ระบุ ดู encodeName () เพื่อดูรายละเอียด QFile QByteArray แบบคงที่ encodeName (const QString amp fileName) โดยค่าเริ่มต้นฟังก์ชันนี้จะแปลงไฟล์ไปเป็นการเข้ารหัสแบบ 8 บิตแบบโลคัลที่ถูกกำหนดโดยโลแคลผู้ใช้ ซึ่งเพียงพอสำหรับชื่อไฟล์ที่ผู้ใช้เลือก ชื่อไฟล์ที่เขียนลงในโปรแกรมประยุกต์ควรใช้ชื่อไฟล์ ASCII แบบ 7 บิตเท่านั้น FileError QFile ข้อผิดพลาด () const ส่งคืนสถานะข้อผิดพลาดของไฟล์ สถานะอุปกรณ์ IO จะส่งคืนรหัสข้อผิดพลาด ตัวอย่างเช่นถ้า open () ส่งกลับค่า false หรือการดำเนินการ readwrite จะส่งกลับค่า -1 ฟังก์ชันนี้สามารถเรียกใช้เพื่อหาเหตุผลที่การดำเนินการล้มเหลว static bool QFile มีอยู่ (const QString amp fileName) ส่งกลับค่าจริงถ้าไฟล์ที่ระบุโดย fileName มีมิฉะนั้นส่งกลับ false bool QFile exist () const นี่เป็นฟังก์ชันที่มากเกินไป ส่งกลับค่าจริงถ้าไฟล์ที่ระบุโดย fileName () มีมิฉะนั้นจะส่งกลับค่า false QString QFile fileName () const ส่งกลับค่าชื่อที่ตั้งโดย setFileName () หรือผู้สร้าง QFile bool QFile flush () ล้างข้อมูลที่บัฟเฟอร์ใด ๆ ลงในไฟล์ ส่งกลับค่าจริงถ้าสำเร็จมิฉะนั้นจะส่งกลับค่าเท็จ int QFile handle () const ส่งกลับหมายเลขอ้างอิงของไฟล์ นี่เป็นจำนวนเต็มบวกขนาดเล็กเหมาะสำหรับใช้กับฟังก์ชันห้องสมุด C เช่น fdopen () และ fcntl () ในระบบที่ใช้ตัวบอกไฟล์สำหรับซ็อกเก็ต (เช่นระบบยูนิกซ์ แต่ไม่ใช่ Windows) สามารถใช้หมายเลขอ้างอิงนี้กับ QSocketNotifier ได้เช่นกัน ถ้าแฟ้มไม่ได้เปิดหรือมีข้อผิดพลาด handle () จะส่งกลับค่า -1 ฟังก์ชันนี้ไม่ได้รับการสนับสนุนบน Windows CE ใน Symbian ฟังก์ชันนี้จะส่งกลับค่า -1 ถ้าไฟล์ถูกเปิดโดยปกติเนื่องจากไฟล์ต้นฉบับของระบบปฏิบัติการ Symbian OS ไม่พอดีกับ int และไม่สามารถทำงานร่วมกับฟังก์ชันห้องสมุด C ที่จะใช้จัดการได้ หากไฟล์ถูกเปิดขึ้นโดยใช้การโอเวอร์โหลดที่ใช้ไฟล์ C library แบบเปิดจัดการไฟล์ descriptor ฟังก์ชันนี้จะส่งกลับค่า handle เดียวกัน เสมือน bool QFile isSequential () const กลับค่า true ถ้าไฟล์สามารถถูกจัดการได้ตามลำดับมิฉะนั้นจะส่งกลับค่า false ไฟล์ส่วนใหญ่สนับสนุนการเข้าถึงแบบสุ่ม แต่ไฟล์พิเศษบางไฟล์อาจไม่ bool QFile link (const QString amp linkName) สร้างลิงค์ชื่อ linkName ที่ชี้ไปยังไฟล์ที่ระบุโดย fileName () สิ่งที่เชื่อมโยงขึ้นอยู่กับระบบแฟ้มต้นแบบ (ไม่ว่าจะเป็นทางลัดบน Windows หรือลิงก์สัญลักษณ์ใน Unix) ส่งกลับค่าจริงถ้าสำเร็จมิฉะนั้นจะส่งกลับค่าเท็จ ฟังก์ชันนี้จะไม่เขียนทับเอนทิตีที่มีอยู่แล้วในระบบไฟล์ในกรณีนี้ link () จะส่งกลับ false และตั้งค่า error () เพื่อส่งกลับค่า RenameError หมายเหตุ: หากต้องการสร้างลิงก์ที่ถูกต้องบน Windows linkName ต้องมีนามสกุล. lnk หมายเหตุ: ระบบแฟ้ม Symbian ไม่สนับสนุนลิงก์ static bool QFile link (const ชื่อไฟล์ qString amp config constString amp name) นี่เป็นฟังก์ชันที่มากเกินไป สร้างลิงค์ชื่อ linkName ที่ชี้ไปยังไฟล์ fileName สิ่งที่ลิงค์ขึ้นอยู่กับระบบแฟ้มต้นแบบ (ไม่ว่าจะเป็นทางลัดบน Windows หรือลิงค์สัญลักษณ์ใน Unix) ส่งกลับค่าจริงถ้าสำเร็จมิฉะนั้นจะส่งกลับค่าเท็จ uchar QFile map (qint64 offset qint64 size. MemoryMapFlags flags NoOptions) ไบต์ขนาดของไฟล์แผนที่ลงในหน่วยความจำเริ่มต้นที่ offset ควรเปิดไฟล์เพื่อให้แผนที่ประสบความสำเร็จ แต่ไฟล์ไม่จำเป็นต้องเปิดอยู่หลังจากที่ได้จับคู่หน่วยความจำแล้ว เมื่อไฟล์ QFile ถูกทำลายหรือมีการเปิดไฟล์ใหม่กับออบเจกต์นี้แผนที่ใด ๆ ที่ไม่ได้ถูกยกเลิกการเชื่อมจะถูกยกเลิกการเชื่อมต่อโดยอัตโนมัติ ตัวเลือกการทำแผนที่ใด ๆ สามารถส่งผ่านแฟลกได้ ส่งกลับตัวชี้ไปยังหน่วยความจำหรือ 0 ถ้ามีข้อผิดพลาด หมายเหตุ: ใน Windows CE 5.0 ไฟล์จะถูกปิดก่อนการแม็ปเกิดขึ้น ฟังก์ชันนี้ถูกนำมาใช้ใน Qt 4.4 เสมือน bool QFile เปิด (OpenMode mode) เปิดไฟล์โดยใช้โหมด OpenMode กลับจริงถ้าประสบความสำเร็จอย่างอื่นเท็จ หมายเหตุ: ในโหมด WriteOnly หรือ ReadWrite ถ้าไฟล์ที่เกี่ยวข้องไม่มีอยู่ฟังก์ชันนี้จะพยายามสร้างไฟล์ใหม่ก่อนที่จะเปิดไฟล์ bool QFile เปิด (FILE fh. OpenMode mode) นี่เป็นฟังก์ชันที่โอเวอร์โหลด เปิดแฟ้มที่มีอยู่จัดการ fh ในโหมดที่กำหนด ส่งกลับค่าจริงถ้าสำเร็จมิฉะนั้นจะส่งกลับค่าเท็จ เมื่อ QFile ถูกเปิดโดยใช้ฟังก์ชั่นนี้ close () ไม่สามารถปิดไฟล์ได้ แต่จะดับลงเท่านั้น หาก fh ไม่ได้อ้างถึงไฟล์ปกติเช่น เป็น stdin stdout หรือ stderr คุณอาจไม่สามารถหา () size () จะคืนค่า 0 ในกรณีดังกล่าว ดู QIODevice :: isSequential () สำหรับข้อมูลเพิ่มเติม เนื่องจากฟังก์ชันนี้เปิดไฟล์โดยไม่ระบุชื่อไฟล์คุณจะไม่สามารถใช้ QFile นี้กับ QFileInfo ได้ หมายเหตุ: สำหรับ Windows CE คุณอาจไม่สามารถเรียกใช้การปรับขนาด () หมายเหตุสำหรับ Windows Platform fh ต้องเปิดในโหมดไบนารี (เช่นสตริงโหมดต้องประกอบด้วย b เช่น rb หรือ wb) เมื่อเข้าถึงไฟล์และอุปกรณ์เข้าถึงแบบสุ่มอื่น ๆ Qt จะแปลตัวอักษรท้ายบรรทัดหากคุณผ่าน QIODevice :: Text ไปยังโหมด อุปกรณ์ตามลำดับเช่น stdin และ stdout จะไม่ได้รับผลกระทบจากข้อ จำกัด นี้ คุณต้องเปิดใช้งานการสนับสนุนคอนโซลแอ็พพลิเคชันเพื่อใช้ stdin, stdout และ stderr ที่คอนโซล เมื่อต้องการทำเช่นนี้เพิ่มประกาศต่อไปนี้ไปยังแฟ้มโครงการของแอ็พพลิเคชันของคุณ: bool QFile เปิด (FILE fh โหมด OpenMode FileHandleFlags handleFlags) นี่เป็นฟังก์ชันที่มากเกินไป เปิดแฟ้มที่มีอยู่จัดการ fh ในโหมดที่กำหนด ส่งกลับค่าจริงถ้าสำเร็จมิฉะนั้นจะส่งกลับค่าเท็จ เมื่อ QFile ถูกเปิดโดยใช้ฟังก์ชันนี้การทำงานของ close () จะถูกควบคุมโดยค่าสถานะ AutoCloseHandle ถ้า AutoCloseHandle ถูกระบุและฟังก์ชันนี้ประสบความสำเร็จจากนั้นให้เรียก close () ปิดตัวจัดการที่เป็นลูกบุญธรรม มิฉะนั้นปิด () ไม่ได้ปิดไฟล์จริงๆ แต่จะล้างข้อมูลเท่านั้น หาก fh ไม่ได้อ้างถึงไฟล์ปกติเช่น เป็น stdin stdout หรือ stderr คุณอาจไม่สามารถหา () size () จะคืนค่า 0 ในกรณีดังกล่าว ดู QIODevice :: isSequential () สำหรับข้อมูลเพิ่มเติม เนื่องจากฟังก์ชันนี้เปิดไฟล์โดยไม่ระบุชื่อไฟล์คุณจะไม่สามารถใช้ QFile นี้กับ QFileInfo ได้ หมายเหตุ: สำหรับ Windows CE คุณอาจไม่สามารถเรียกใช้การปรับขนาด () หมายเหตุสำหรับ Windows Platform fh ต้องเปิดในโหมดไบนารี (เช่นสตริงโหมดต้องประกอบด้วย b เช่น rb หรือ wb) เมื่อเข้าถึงไฟล์และอุปกรณ์เข้าถึงแบบสุ่มอื่น ๆ Qt จะแปลตัวอักษรท้ายบรรทัดหากคุณผ่าน QIODevice :: Text ไปยังโหมด อุปกรณ์ตามลำดับเช่น stdin และ stdout จะไม่ได้รับผลกระทบจากข้อ จำกัด นี้ คุณต้องเปิดใช้งานการสนับสนุนคอนโซลแอ็พพลิเคชันเพื่อใช้ stdin, stdout และ stderr ที่คอนโซล เมื่อต้องการทำเช่นนี้เพิ่มประกาศต่อไปนี้ไปยังแฟ้มโครงการของแอ็พพลิเคชันของคุณ: bool QFile open (int fd. OpenMode mode) นี่เป็นฟังก์ชันที่โอเวอร์โหลด เปิดตัวอธิบายไฟล์ที่มีอยู่ fd ในโหมดที่กำหนด ส่งกลับค่าจริงถ้าสำเร็จมิฉะนั้นจะส่งกลับค่าเท็จ เมื่อ QFile ถูกเปิดโดยใช้ฟังก์ชันนี้ให้ปิด () ไม่ได้ปิดไฟล์จริงๆ QFile ที่เปิดขึ้นโดยใช้ฟังก์ชันนี้จะถูกตั้งค่าให้อยู่ในโหมดดิบโดยอัตโนมัติซึ่งหมายความว่าฟังก์ชัน inputoutput ของไฟล์ทำงานช้า ถ้าคุณพบปัญหาด้านประสิทธิภาพคุณควรลองใช้ฟังก์ชันอื่น ๆ ที่เปิดอยู่ คำเตือน: หาก fd ไม่ใช่ไฟล์ปกติเช่น 0 (stdin), 1 (stdout) หรือ 2 (stderr) คุณอาจไม่สามารถหา () ได้ ในกรณีดังกล่าว size () จะส่งกลับค่า 0 ดู QIODevice :: isSequential () สำหรับข้อมูลเพิ่มเติม คำเตือน: สำหรับ Windows CE คุณอาจไม่สามารถโทร seek (), setSize (), fileTime () size () ส่งกลับค่า 0 คำเตือน: ตั้งแต่ฟังก์ชั่นนี้จะเปิดไฟล์โดยไม่มีการระบุชื่อไฟล์คุณจะไม่สามารถใช้ QFile นี้กับ QFileInfo ได้ bool QFile open (int fd. โหมด OpenMode FileHandleFlags handleFlags) นี่เป็นฟังก์ชันที่มากเกินไป เปิดตัวอธิบายไฟล์ที่มีอยู่ fd ในโหมดที่กำหนด ส่งกลับค่าจริงถ้าสำเร็จมิฉะนั้นจะส่งกลับค่าเท็จ เมื่อ QFile ถูกเปิดโดยใช้ฟังก์ชันนี้การทำงานของ close () จะถูกควบคุมโดยอาร์กิวเมนต์ handleFlags ถ้า AutoCloseHandle ถูกระบุและฟังก์ชันนี้ประสบความสำเร็จจากนั้นให้เรียก close () ปิดตัวจัดการที่เป็นลูกบุญธรรม มิฉะนั้นปิด () ไม่ได้ปิดไฟล์จริงๆ แต่จะล้างข้อมูลเท่านั้น QFile ที่เปิดขึ้นโดยใช้ฟังก์ชันนี้จะถูกตั้งค่าให้อยู่ในโหมดดิบโดยอัตโนมัติซึ่งหมายความว่าฟังก์ชัน inputoutput ของไฟล์ทำงานช้า ถ้าคุณพบปัญหาด้านประสิทธิภาพคุณควรลองใช้ฟังก์ชันอื่น ๆ ที่เปิดอยู่ คำเตือน: หาก fd ไม่ใช่ไฟล์ปกติเช่น 0 (stdin), 1 (stdout) หรือ 2 (stderr) คุณอาจไม่สามารถหา () ได้ ในกรณีดังกล่าว size () จะส่งกลับค่า 0 ดู QIODevice :: isSequential () สำหรับข้อมูลเพิ่มเติม คำเตือน: สำหรับ Windows CE คุณอาจไม่สามารถโทร seek (), setSize (), fileTime () size () ส่งกลับค่า 0 คำเตือน: ตั้งแต่ฟังก์ชั่นนี้จะเปิดไฟล์โดยไม่มีการระบุชื่อไฟล์คุณจะไม่สามารถใช้ QFile นี้กับ QFileInfo ได้ bool QFile เปิด (const RFile amp f. โหมด OpenMode. FileHandleFlags handleFlags DontCloseHandle) นี่เป็นฟังก์ชันที่มากเกินไป เปิดไฟล์ f วัตถุที่มีอยู่ในโหมดที่กำหนด ส่งกลับค่าจริงถ้าสำเร็จมิฉะนั้นจะส่งกลับค่าเท็จ เมื่อ QFile ถูกเปิดโดยใช้ฟังก์ชันนี้การทำงานของ close () จะถูกควบคุมโดยอาร์กิวเมนต์ handleFlags ถ้า AutoCloseHandle ถูกระบุและฟังก์ชันนี้ประสบความสำเร็จจากนั้นให้เรียก close () ปิดตัวจัดการที่เป็นลูกบุญธรรม มิฉะนั้นปิด () ไม่ได้ปิดไฟล์จริงๆ แต่จะล้างข้อมูลเท่านั้น คำเตือน: ถ้าหมายเลขอ้างอิงของไฟล์ถูกนำมาใช้จากกระบวนการอื่นคุณอาจไม่สามารถใช้ QFile นี้ได้ด้วย QFileInfo สิทธิ์ QFile สิทธิ์ () const ส่งคืนค่าที่สมบูรณ์หรือร่วมกันของ QFile :: สิทธิ์สำหรับไฟล์ สิทธิ์แบบคงที่ QFile สิทธิ์ (const QString amp fileName) นี่เป็นฟังก์ชันที่มากเกินไป ส่งกลับชุดค่าผสมสมบูรณ์ของ ORF ของ QFile :: Permission for fileName qintile เสมือน qintile pos () const ป้องกันเสมือน qint64 QFile readData (ข้อมูล char qint64 len) เสมือนการป้องกัน qint64 QFile readLineData (ข้อมูล char qint64 maxlen) bool QFile remove () ลบไฟล์ที่ระบุโดย fileName () ส่งกลับค่าจริงถ้าสำเร็จมิฉะนั้นจะส่งกลับค่าเท็จ ไฟล์ถูกปิดก่อนที่จะนำออก static bool QFile ลบ (const QString amp fileName) นี่เป็นฟังก์ชันที่มากเกินไป ลบไฟล์ที่ระบุโดยไฟล์ที่ระบุ ส่งกลับค่าจริงถ้าสำเร็จมิฉะนั้นจะส่งกลับค่าเท็จ bool QFile เปลี่ยนชื่อ (const QString amp newName) เปลี่ยนชื่อไฟล์ที่ระบุโดย fileName () เป็น newName ส่งกลับค่าจริงถ้าสำเร็จมิฉะนั้นจะส่งกลับค่าเท็จ หากไฟล์ที่มีชื่อ newName มีอยู่แล้วให้เปลี่ยนชื่อ () ส่งกลับค่า false (เช่น QFile จะไม่เขียนทับ) ไฟล์ถูกปิดก่อนที่จะมีการเปลี่ยนชื่อ static bool QFile เปลี่ยนชื่อ (const QString amp oldName const แอ็ตทริบิวต์ QString newName) นี่เป็นฟังก์ชันที่มากเกินไป เปลี่ยนชื่อไฟล์ oldName เป็น newName ส่งกลับค่าจริงถ้าสำเร็จมิฉะนั้นจะส่งกลับค่าเท็จ หากไฟล์ที่มีชื่อ newName มีอยู่แล้วให้เปลี่ยนชื่อ () ส่งกลับค่า false (เช่น QFile จะไม่เขียนทับ) bool QFile ปรับขนาด (qint64 sz) ตั้งค่าขนาดไฟล์ (เป็นไบต์) sz ส่งกลับค่าจริงถ้าแฟ้มถ้าการปรับขนาดทำได้สำเร็จเป็นเท็จ ถ้า sz มีขนาดใหญ่กว่าไฟล์ที่ปัจจุบันเป็นไบต์ใหม่จะถูกตั้งค่าเป็น 0 หาก sz มีขนาดเล็กลงไฟล์จะถูกตัดทอนเพียงครั้งเดียว static bool QFile ปรับขนาด (const QString amp fileName. qint64 sz) นี่เป็นฟังก์ชันที่มากเกินไป ตั้งค่าชื่อไฟล์เป็นขนาด (เป็นไบต์) sz ส่งกลับค่าจริงถ้าไฟล์ถ้าการปรับขนาดทำได้สำเร็จเป็นเท็จ ถ้า sz มีขนาดใหญ่กว่า fileName ปัจจุบันเป็นไบต์ใหม่จะถูกตั้งค่าเป็น 0 หาก sz มีขนาดเล็กลงไฟล์จะถูกตัดทอนเพียง เสมือน bool QFile seek (qint64 pos) สำหรับอุปกรณ์ที่มีการเข้าถึงแบบสุ่มฟังก์ชันนี้จะกำหนดตำแหน่งปัจจุบันเป็น POS กลับสู่ความเป็นจริงในความสำเร็จหรือเป็นเท็จหากมีข้อผิดพลาดเกิดขึ้น สำหรับอุปกรณ์ลำดับพฤติกรรมเริ่มต้นคือการไม่ทำอะไรและส่งคืนเท็จ การค้นหาเกินกว่าจุดสิ้นสุดของไฟล์: ถ้าตำแหน่งเกินกว่าไฟล์จากนั้นให้ seek () ไม่ควรขยายไฟล์ทันที หากมีการเขียนข้อมูลในตำแหน่งนี้ไฟล์จะต้องขยายออกไป เนื้อหาของไฟล์ระหว่างสิ้นไฟล์ก่อนหน้าและข้อมูลที่เขียนขึ้นใหม่จะไม่ได้รับการแก้ไขและแตกต่างกันไปในแต่ละแพลตฟอร์มและระบบไฟล์ static void QFile setDecodingFunction (DecoderFn function) ตั้งค่าฟังก์ชันสำหรับการถอดรหัสชื่อไฟล์ 8-bit ค่าดีฟอลต์ใช้การเข้ารหัสแบบ 8 บิตเฉพาะภาษาท้องถิ่น คำเตือน: ฟังก์ชันนี้ไม่ใช่ reentrant static void QFile setEncodingFunction (EncoderFn function) ตั้งค่าฟังก์ชันสำหรับการเข้ารหัสชื่อไฟล์ Unicode ค่าดีฟอลต์จะเข้ารหัสในการเข้ารหัสแบบ 8 บิตเฉพาะที่เฉพาะเจาะจง คำเตือน: ฟังก์ชันนี้ไม่ใช่ reentrant เป็นโมฆะ QFile setFileName (const QString amp name) ตั้งชื่อไฟล์ ชื่อสามารถไม่มีพา ธ เส้นทางญาติหรือเส้นทางสัมบูรณ์ได้ อย่าเรียกใช้ฟังก์ชันนี้หากไฟล์ได้รับการเปิดแล้ว ถ้าชื่อไฟล์ไม่มีพา ธ หรือเส้นทางสัมพัทธ์เส้นทางที่ใช้จะเป็นพา ธ ไดเรคทอรีปัจจุบันของแอพพลิเคชันในขณะที่มีการเรียก open () โปรดจำไว้ว่าตัวคั่นไดเร็กทอรีทำงานได้กับระบบปฏิบัติการทั้งหมดที่ Qt สนับสนุน bool QFile setPermissions (สิทธิ์การอนุญาต) ตั้งค่าสิทธิ์สำหรับไฟล์ตามสิทธิ์ที่ระบุ ส่งกลับค่าจริงถ้าสำเร็จหรือเท็จถ้าสิทธิ์ไม่สามารถแก้ไขได้ static bool QFile setPermissions (const QString amp fileName สิทธิ์สิทธิ์) นี่คือฟังก์ชันที่มากเกินไป ตั้งค่าสิทธิ์สำหรับไฟล์ fileName เป็นสิทธิ์ qintile เสมือน qintile size () const ส่งคืนขนาดของไฟล์ สำหรับไฟล์เปล่าทั่วไปบน Unix (เช่นใน proc) ฟังก์ชันนี้จะส่งคืน 0 เนื้อหาของไฟล์ดังกล่าวจะสร้างขึ้นตามความต้องการเพื่อตอบสนองต่อการเรียกอ่าน () QFile QString แบบคงที่ symLinkTarget (const QString amp fileName) ส่งคืนเส้นทางสัมบูรณ์ของไฟล์หรือไดเร็กทอรีที่อ้างถึงโดย symlink (หรือทางลัดบน Windows) ที่ระบุโดย fileName หรือส่งกลับสตริงว่างถ้าชื่อไฟล์ไม่ตรงกับการเชื่อมโยงสัญลักษณ์ ชื่อนี้อาจไม่แสดงไฟล์ที่มีอยู่มันเป็นเพียงสตริงเท่านั้น QFile :: exists () ส่งกลับ true ถ้าจุดเชื่อมต่อชี้ไปยังไฟล์ที่มีอยู่ ฟังก์ชันนี้ถูกนำมาใช้ใน Qt 4.2 QString QFile symLinkTarget () const นี่เป็นฟังก์ชันที่มากเกินไป ส่งคืนเส้นทางสัมบูรณ์ของไฟล์หรือไดเร็กทอรี symlink (หรือทางลัดบน Windows) ชี้ไปที่หรือสตริงเปล่าถ้าอ็อบเจ็กต์ไม่ใช่ลิงค์สัญลักษณ์ ชื่อนี้อาจไม่แสดงไฟล์ที่มีอยู่มันเป็นเพียงสตริงเท่านั้น QFile :: exists () ส่งกลับ true ถ้าจุดเชื่อมต่อชี้ไปยังไฟล์ที่มีอยู่ ฟังก์ชันนี้ถูกนำมาใช้ใน Qt 4.2 bool QFile unmap (uchar address) ยกเลิกที่อยู่หน่วยความจำ ส่งกลับค่าจริงถ้า unmap สำเร็จ false เป็นอย่างอื่น ฟังก์ชันนี้ถูกนำมาใช้ใน Qt 4.4

Comments