برنامه نویسی PSP/سیستم پروندهها
صفحه ۶ ►◄ برنامه نویسی PSP ►◄ صفحه ۸
مقدمه
در برنامهنویسی برای کنسول PSP، مدیریت فایلها و پوشهها نقش مهمی در ذخیره و بازیابی دادهها دارد. آشنایی با سیستم فایلهای مورد استفاده در PSP و نحوه کار با آنها از مهمترین مباحثی است که هر برنامهنویس PSP باید بر آن مسلط باشد.
سیستم فایل FAT32
PSP از سیستم فایل FAT32 برای مدیریت دادهها روی حافظههای Memory Stick استفاده میکند. این سیستم فایل به شما امکان میدهد تا فایلهای خود را به صورت منظم در پوشهها سازماندهی کنید و به آنها دسترسی داشته باشید.
ساختار FAT32
سیستم فایل FAT32 از جداولی برای مدیریت بلوکهای حافظه استفاده میکند. هر فایل یا پوشه یک موقعیت مشخص در حافظه دارد که در این جداول ذخیره میشود. در PSP، پوشهها و فایلها در دایرکتوریهای مختلفی مانند "PSP/GAME" و "MUSIC" قرار میگیرند.
محدودیتها
- حجم فایل: سیستم فایل FAT32 تنها از فایلهایی با حداکثر حجم 4 گیگابایت پشتیبانی میکند.
- نامگذاری: نام فایلها و پوشهها باید از کاراکترهای مجاز و با طول مشخص (حداکثر 255 کاراکتر) استفاده کنند.
ساختار پوشهها در PSP
در PSP، ساختار پوشهها به صورت پیشفرض تعیین شده است. برنامهنویسان باید با این ساختار آشنا باشند تا بتوانند به درستی فایلهای خود را مدیریت کنند.
پوشههای پیشفرض
- PSP/GAME: این پوشه برای ذخیره بازیها و نرمافزارهای خانگی (Homebrew) استفاده میشود.
- PSP/MUSIC: فایلهای موسیقی در این پوشه ذخیره میشوند.
- PSP/VIDEO: این پوشه برای ذخیره ویدئوها استفاده میشود.
- PSP/PHOTO: تصاویر در این پوشه قرار میگیرند.
دسترسی به فایلها با کدنویسی
برای دسترسی به فایلها و پوشهها در PSP، میتوانید از توابع استاندارد C برای کار با فایلها استفاده کنید. در ادامه، نحوه استفاده از این توابع برای خواندن و نوشتن فایلها آورده شده است.
باز کردن فایلها
برای باز کردن یک فایل در PSP، میتوانید از تابع `fopen` استفاده کنید. این تابع دو پارامتر میپذیرد: مسیر فایل و نحوه دسترسی (خواندن، نوشتن، و غیره).
FILE *file;
file = fopen("ms0:/PSP/GAME/data.txt", "r");
if (file == NULL) {
printf("فایل یافت نشد!\n");
}
خواندن از فایل
برای خواندن داده از فایل، میتوانید از تابع `fread` استفاده کنید. این تابع دادهها را از فایل به یک بافر مشخص منتقل میکند.
char buffer[256];
fread(buffer, sizeof(char), 255, file);
printf("محتوای فایل: %s\n", buffer);
نوشتن در فایل
برای نوشتن دادهها در یک فایل، از تابع `fwrite` استفاده کنید. این تابع دادهها را از بافر به فایل منتقل میکند.
FILE *file;
file = fopen("ms0:/PSP/GAME/data.txt", "w");
char data[] = "Hello PSP!";
fwrite(data, sizeof(char), strlen(data), file);
fclose(file);
بستن فایلها
بعد از اتمام کار با فایلها، حتماً باید آنها را با تابع `fclose` ببندید تا منابع آزاد شوند.
fclose(file);
مدیریت پوشهها
علاوه بر فایلها، میتوانید پوشهها را نیز در PSP مدیریت کنید. برای مثال، میتوانید پوشههای جدید ایجاد کرده یا پوشههای موجود را حذف کنید.
ایجاد پوشه جدید
برای ایجاد یک پوشه جدید، از تابع `sceIoMkdir` استفاده میشود.
sceIoMkdir("ms0:/PSP/NEW_FOLDER", 0777);
حذف پوشه
برای حذف یک پوشه، از تابع `sceIoRmdir` استفاده کنید.
sceIoRmdir("ms0:/PSP/NEW_FOLDER");
نتیجهگیری
مدیریت فایلها و پوشهها یکی از بخشهای کلیدی در برنامهنویسی PSP است. با استفاده از توابع استاندارد و همچنین توابع خاص PSP، میتوانید به راحتی دادهها را ذخیره، بازیابی و مدیریت کنید. این توانایی به شما امکان میدهد تا برنامههای کارآمدتری برای PSP توسعه دهید.