עבור לתוכן

שינוי שם בקבצי TXT בשפת C

Featured Replies

פורסם

שלום רב!

יש לי פונקציה


void update(char *name,FILE *fp){
.
.
.
}

כאשר

name

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

הפונקציה פותחת את הקובץ


general=fopen(name,"r")

אני מעביר את מה שאני צריך להעביר ולסדר מ2 קבצים שברשותי לקובץ חדש


temp=fopen("Tempfile.txt","w")


אך הבקשה בשאלה הייתה שבסופו של דבר השם

Tempfile

יחזור להיות לשם שנמצא ב

name

אך כשאני עושה את הפקודה שלמדנו



rename(general,temp);

זה לא משנה דבר והקבצים

נשארים בשמם...

מה עלי לעשות בכדי שהשם ישתנה?

תודה רבה!

פורסם

הפונקציה rename מקבלת שמות של הקבצים (כמחרוזות), ולא את הקבצים עצמם.

פורסם
  • מחבר

תודה רבה על התשובה המהירה,

אשמח לדוגמא איך אוכל לעשות זאת במקרה שלי...

הרי גנרל מצביע על ניים

וטמפ' מצביע על טמפייל.

וכמובן שגם גנרל וגם טמפ' הם מסוג FILE

פורסם

rename("Tempfile.txt", name);

שים לב שאתה צריך לעשות את זה כששני הקבצים סגורים, כלומר אם עשית לקובץ fopen אז צריך לעשות לו fclose.

פורסם
  • מחבר

שני הקבצים המדוברים נפתחו בפונקציה עצמה, ולכן בשורה האחרונה של הפונקציה רשמתי:


fclose(general);
fclose(temp);
rename("Tempfile.txt", name);

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

מדוע?

תודה רבה![br]פורסם בתאריך: 12.05.2010 בשעה 23:01:07


טוב, גיליתי את הבעיה,

בגלל שקובץ הgeneral נמצא בתיקייה, אז אני לא יכול לשנות את הקובץ השני לאותו שם


fclose(general);
fclose(temp);
remove(filename);
rename("Tempfile.txt", "General.txt");

תודה רבה על העזרה המבורכת!

ארכיון

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

דיונים חדשים