Unix มีไลบรารี่ที่สามารถทำการวนไฟล์ให้คุณได้ ฟังก์ชั่นและประเภทมีการประกาศในส่วนหัวที่เรียกว่าglob.h
ดังนั้นคุณจะต้อง#include
มัน ถ้าเปิดเทอร์มินัลให้เปิด man page สำหรับ glob โดยพิมพ์man 3 glob
คุณจะได้รับข้อมูลทั้งหมดที่คุณจำเป็นต้องรู้เพื่อใช้ฟังก์ชั่น
ด้านล่างเป็นตัวอย่างของวิธีที่คุณสามารถเติมอาร์เรย์ของไฟล์ที่ตรงกับรูปแบบกลม เมื่อใช้glob
ฟังก์ชั่นมีบางสิ่งที่คุณต้องจำไว้
- โดยค่าเริ่มต้น
glob
ฟังก์ชั่นการค้นหาไฟล์ในไดเรกทอรีการทำงานปัจจุบัน เพื่อที่จะค้นหาไดเรกทอรีอื่นคุณจะต้องย่อหน้าชื่อไดเรกทอรีกับรูปแบบ globbing /bin
ที่สุดเท่าที่ฉันเคยทำในตัวอย่างของฉันที่จะได้รับไฟล์ทั้งหมดที่อยู่ใน
- คุณมีหน้าที่ในการล้างหน่วยความจำที่จัดสรร
glob
โดยการโทรglobfree
เมื่อคุณทำกับโครงสร้าง
ในตัวอย่างของฉันฉันใช้ตัวเลือกเริ่มต้นและไม่มีข้อผิดพลาดในการโทรกลับ man page ครอบคลุมตัวเลือกทั้งหมดในกรณีที่มีบางสิ่งที่คุณต้องการใช้ หากคุณจะใช้รหัสข้างต้นฉันขอแนะนำให้เพิ่มเป็นหมวดหมู่NSArray
หรืออะไรแบบนั้น
NSMutableArray* files = [NSMutableArray array];
glob_t gt;
char* pattern = "/bin/*";
if (glob(pattern, 0, NULL, >) == 0) {
int i;
for (i=0; i<gt.gl_matchc; i++) {
[files addObject: [NSString stringWithCString: gt.gl_pathv[i]]];
}
}
globfree(>);
return [NSArray arrayWithArray: files];
แก้ไข: ฉันได้สร้างส่วนสำคัญบน GitHub ที่มีโค้ดข้างต้นในหมวดหมู่นี้เรียกว่าNSArray + globbing