עבור לתוכן

שאלה בקבצים ב C...

Featured Replies

פורסם

שלום אני צריך לממש את הדבר הבא:

אם הקובץ קיים - אז לכתוב לקובץ, אחרת להוציא הודעה ש..הקובץ לא קיים.

איך ממשים זאת?

כלומר לפני שאני מתחיל לכתוב לקובץ אז איך אני בודק בכלל אם הוא נמצא שם?

פורסם

בבקשה:

FILE *fp = fopen("file","r");
if( fp ) {
// exists
fclose(fp);
} else {
// doesnt exist
}

הקוד הזה לא מושלם, כי הוא רק בודק אם אפשר לפתוח את הקובץ לקריאה (יכול להיות שהוא קיים אבל לא נגיש).

בשביל קוד יותר טוב אתה צריך לקרוא לפונקציות מערכת, וזה כבר תלוי פלטפורמה.

פורסם
  • מחבר

מה הכוונה שלך לקוד יותר טוב...?

על אילו פונקציות אתה מדבר..?

פורסם

הקוד הזה רק בודק אם אתה יכול לפתוח את הקובץ לקריאה.

יכול להיות שהקובץ כן קיים, אבל אי אפשר לפתוח אותו לקריאה (נניח, אם תוכנה אחרת משתמשת בו).

ב-windows קיימות פונקציות ספרייה מתקדמות לטיפול בקבצים.

ספציפית, הפונקציה שאני מתכוון אליה היא FindFirstFile, שאתה נותן לה שם של קובץ או ספריה (עם wildcards) והיא מחזירה לך את הקובץ הראשון שהיא מוצאת. אם היא לא מוצאת קובץ (כי הוא לא קיים), היא תחזיר לך שגיאה.

הבעיה היא כמובן שהפונקציה הזו עובדת רק ב-windows ואתה צריך לקמפל את התכנית שלך בהתאם.

ארכיון

דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.

דיונים חדשים