ไดเรกทอรีและชื่อแฟ้ม

ข้อมูลในส่วนนี้นำไปใช้กับทั้งลักษณะ Explorer และแบบเปิดและบันทึกเป็นกล่องโต้ตอบ.

ก่อนการเรียกฟังก์ชันGetOpenFileNameหรือGetSaveFileName , lpstrFileสมาชิกของโครงสร้างOPENFILENAMEต้องชี้ไปที่การบัฟเฟอร์รับชื่อแฟ้ม สมาชิกnMaxFileต้องระบุขนาด ไบต์ (รุ่น ANSI) หรืออักขระ 16 บิต (รุ่น Unicode), ของบัฟเฟอร์lpstrFile.

ถ้าผู้ใช้ระบุชื่อแฟ้ม และคลิกปุ่มOKกล่องโต้ตอบคัดลอกการเลือกไดรฟ์ directory และชื่อแฟ้มการบัฟเฟอร์lpstrFile ฟังก์ชันสามารถตั้งค่าสมาชิกnFileOffsetและnFileExtensionเพื่อออฟเซ็ต ไบต์ (รุ่น ANSI) หรืออักขระ 16 บิต (รุ่น Unicode), จากจุดเริ่มต้นของบัฟเฟอร์ไป ยังชื่อแฟ้ม และส่วน ขยายชื่อแฟ้ม ตามลำดับ.

เรียกเพียง ชื่อไฟล์และนามสกุล ตั้งสมาชิกlpstrFileTitleชี้ไปที่การบัฟเฟอร์ และตั้งค่าสมาชิกnMaxFileTitleที่เป็นขนาด ไบต์ (รุ่น ANSI) หรืออักขระ 16 บิต (รุ่น Unicode), ของบัฟเฟอร์ อีกวิธีหนึ่งคือ คุณสามารถส่งบัฟเฟอร์lpstrFileในการเรียกไปยังฟังก์ชันGetFileTitleเพื่อให้ได้ชื่อที่ใช้แสดงของแฟ้มที่เลือก หมายเหตุ อย่างไรก็ตาม ว่า ชื่อแฟ้มที่ส่งกลับGetFileTitleรวมนามสกุลเท่านั้นหากเป็นผู้กำหนดลักษณะการแสดงชื่อแฟ้ม.

กล่องโต้ตอบการใช้ไดเรกทอรีปัจจุบันสำหรับขั้นตอนการเรียกเป็นไดเรกทอรีเริ่มต้นที่จะแสดงไฟล์และไดเรกทอรี ใช้ GetCurrentDirectoryหรือ SetCurrentDirectoryฟังก์ชันการรับ หรือเปลี่ยนไดเรกทอรีปัจจุบันของคุณ เมื่อต้องการระบุการไดเรกทอรีเริ่มต้นที่แตกต่างกันโดยไม่ต้องเปลี่ยนไดเรกทอรีปัจจุบัน ใช้สมาชิกlpstrInitialDirที่ระบุชื่อของไดเรกทอรี กล่องโต้ตอบเปลี่ยนแปลงไดเรกทอรีปัจจุบันของคุณโดยอัตโนมัติเมื่อผู้ใช้เลือกไดรฟ์อื่นหรือไดเรกทอรี เมื่อต้องการป้องกันไม่ให้กล่องโต้ตอบเปลี่ยนไดเรกทอรีปัจจุบัน ตั้งค่าสถานะ OFN_NOCHANGEDIR ธงชาตินี้ไม่ได้ป้องกันผู้ใช้จากการเปลี่ยนไดเรกทอรีเพื่อค้นหาแฟ้ม.

เมื่อต้องการระบุการมีส่วนขยายชื่อแฟ้มเริ่มต้น ใช้สมาชิกlpstrDefExt หากผู้ใช้ระบุชื่อแฟ้มที่มีนามสกุล กล่องโต้ตอบเพิ่มส่วนขยายเริ่มต้นของคุณ ถ้าคุณระบุส่วนขยายเริ่มต้น และผู้ใช้ระบุชื่อแฟ้ม ด้วยนามสกุลอื่น ตั้งค่ากล่องโต้ตอบ OFN_EXTENSIONDIFFERENT ตั้งค่าสถานะ.

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

ถ้าผู้ใช้เลือกแฟ้มมากกว่าหนึ่งแฟ้ม บัฟเฟอร์ที่ชี้ไป โดยสมาชิกlpstrFileส่งกลับเส้นทางไดเรกทอรีปัจจุบันตาม ด้วยชื่อแฟ้มของแฟ้มที่เลือก สมาชิกnFileOffsetคือออฟเซตไปชื่อแฟ้มแรก และสมาชิกnFileExtensionไม่ใช้ ตารางต่อไปนี้อธิบายถึงความแตกต่างระหว่าง Explorer-ลักษณะและกล่องโต้ตอบลักษณะเดิมในการส่งกลับชื่อหลายแฟ้ม.

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

คุณสามารถใช้การ FindFirstFileฟังก์ชันการแปลงระหว่างชื่อแฟ้มที่ยาว และสั้น.

Index