איך למחוק קובץ מהדיסק ולא רק מבסיס הנתונים?

BIG-TIMI

משתמש צעיר
בניתי אתר עם דף גלרית תמונות, עכשיו להעלות תמונות אין בעיה, הבעיה זה למחוק תמונות מהאתר, שאני מוחק אותן הם נמחקות מהבסיס נתונים אבל לא נמחקות מהתקייה שהם נמצאות בה, מישהו כאן יוכל לעזור לי למצוא את הקוד שמוחק אותן? (מצאתי כמה קודים ברשת אבל לא הצלחתי לעבוד איתם)

הנה הקוד של העלאת התמונה:

This user does not have permission to use the HTML BB code.
 

Haim

משתמש צעיר
D I G I T A L
קוד:
using System.IO; 

string strFilePathAndName ="~/Images/someimg.jpg"
 
File.Delete(Server.MapPath(strFilePathAndName);
 

חיים פ

משתמש צעיר
תשתדלו בעת העלאת שאלה להזכיר את השפה והפלטפורמה (C# ASP.NET במקרה הספציפי)לטובת המשתמשים

Haim - תודה
 

BIG-TIMI

משתמש צעיר
חיים תודה, ניסיתי את מה שכתבת אבל לא הצלחתי,
ניסיתי גם לכתוב את הקוד הזה אבל אני לא מצליח כי הוא מראה לי שגיאה במילה" path"

This user does not have permission to use the HTML BB code.
 

Haim

משתמש צעיר
D I G I T A L
1) בקוד שכתבת, פקודת File.Delete מופנית ל - virtualFolder ואילו הפקודה עצמה פועלת על המבנה הפיסי של מערכת הקבצים בשרת. אז אתה חייב להפנות אותה ל - physicalFolder

2) תבדוק את המיקום היחסי של הקובץ הנמחק לעומת הקובץ ממנו אתה מפעיל את הפקודה.
ראיתי שכתבת
קוד:
string virtualFolder = "/Gallery/";
יתכן שצריך להוסיף ~ לפני הנתיב
קוד:
string virtualFolder = "~/Gallery/";
3) אתה יכול לבדוק את מצב הקובץ לפני המחיקה:
קוד:
string strFilePathAndName ="~/Images/someimg.jpg"
 if (File.Exists( Server.MapPath(strFilePathAndName ))
            File.Delete(Server.MapPath(strFilePathAndName ));
 

BIG-TIMI

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

קבצים מצורפים

  • שגיאה במחיקת קובץ.png
    KB 992.3 · צפיות: 0

שוצי

משתמש פעיל
D I G I T A L
לא נכנסתי עמוק לקוד שלך אבל לפי מה שכתבו לך צריך להשתמש ב
קוד:
File.Delete(Server.MapPath(strFilePathAndName ));
לא קיים לServer בכלל property - path מוחצן.
 

BIG-TIMI

משתמש צעיר
שינית את הקוד של ה delete אבל עכשיו מופיעה לי שגיאה על ה fileName

בשורה הזאת:
[FONT=Arial, Helvetica, Geneva, SunSans-Regular, sans-serif]
string fileName = fileName.ToString();</PRE>
והשגיאה היא:</PRE>
CS0165: Use of unassigned local variable 'fileName</PRE>[/FONT]
 

שוצי

משתמש פעיל
D I G I T A L
קוד:
[FONT=Arial][COLOR=#ff0000]string fileName = fileName.ToString();[/COLOR][/FONT]
משהו פה לא ברור לי
אתה מנסה ליצור משתנה ולהכניס לו את הערך של עצמו כשהוא עדין לא מאותחל?
 

BIG-TIMI

משתמש צעיר
אז מה אני צריך לרשום במשתנה? או שבכלל לא לרשום אותו? אין לי מושג, בשביל זה שאלתי את עזרתכם בפורום שאולי תוכלו לעזור לי. תודה רבה.
 

חיים פ

משתמש צעיר
אתה צריך כמובן להכניס למשתנה את שם הקובץ שאתה רוצה למחוק..
או שתעבור בלולאה על הקבצים בתיקייה שאתה רוצה למחוק..
 

BIG-TIMI

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

שמח לעזור

משתמש מקצוען
D I G I T A L
נכתב ע"י BIG-TIMI;549213:
אני מבין, אבל הרעיון הוא שאני לא אמור לדעת את שם הקובץ אלא פשוט אני רואה אותו ויש לי לחצן delete לידו שאמור למחוק אותו, כיון שזה לא קובץ אחד אלא מדובר בהרבה קבצים (דינאמיים) אני מציג אותם ע''י שימוש ב databinding ולכן איני יכול לקחת את השם הספיציפי של הקובץ, השאלה איך אני אמור לעשות את זה ללא שם הקובץ.
מה הכוונה, הדטה בידינג מפנה למסד עם רשומה בה כתוב השם המלא של הקובץ, לא?
 

BIG-TIMI

משתמש צעיר
לא, ה databinding מפנה למסד נתונים עם רשומה בה כתוב ה url , עכשיו בכל תמונה שאני מעלה נוצר url חדש, לכן אני לא יכול לרשום במחיקה שזה ימחוק לי url ספיציפי, אלא צריך שזה יקח את שם השדה שרשום ב url מהבסיס נתונים וימחק אותו גם מהדיסק (כולל ה path) ואת זה אני לא יודע לעשות, בעיקרון הבעיה לא אמורה להפריע לי באתר, הבעיה שאם אני אמחוק תמונות אז הם עדיין ישארו על השרת אבל רק לא יופיעו באתר, ואת זה אני רוצה למנוע. תודה רבה לכם!!!
 

שמח לעזור

משתמש מקצוען
D I G I T A L
דרך הדטה בינדינג עצמו נראה לי שא"א לדעת על שדה אחר ברשומה הנוכחית.
צריך לבוא דרך הדטה סט (DataSet, חייב להיות אחד כזה כשיש DataBinding), ככה נראה לי:
קוד:
[I]DataSetName[/I].Rows([I]DataBindingName[/I].Current).Item("שם השדה של היו.אר.אל")
אולי צריך להוסיף בסוף ToString לא זוכר.
 

BIG-TIMI

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

BIG-TIMI

משתמש צעיר
הנה הצילום מסך, מה שקורה זה, כל תמונה שם הכנסתי ב data binding עכשיו אני רוצה שמתי שאני אלחץ על כפתור שליד התמונה היא תמחק גם מה DB ואז זה לא הצלחתי להשיג עדיין, תראה אם תוכל לעזור לי, מקסימום אני יכול גם לשלוח לך את קבצי המקור כדי שתוכל לנסות למצוא את הקוד הנכון, תודה רבה!!!
 

קבצים מצורפים

  • 11111111111111.png
    KB 469.1 · צפיות: 0

שמח לעזור

משתמש מקצוען
D I G I T A L
בטח את הקוד, אני הבנתי מצויין מה אתה רוצה באתר.
אני משער שכשלוחצים על insert אז הוא מעלה את התמונה בbinding.addnew נכון?

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

BIG-TIMI

משתמש צעיר
הנה שני הקבצים (ה html והקוד ברקע)
 

קבצים מצורפים

  • newPhoto.rar
    KB 1.8 · צפיות: 0

שמח לעזור

משתמש מקצוען
D I G I T A L
ניסיתי להבין, אבל כנראה חסר לי ידע בASP.
אני לא הבנתי איך הלחיצה על כפתור הinsert שהCommandName שלו זה Insert מפעיל פקודה שלא נמצאת בכלל בקוד.
 

אולי מעניין אותך גם...

הפרק היומי

הפרק היומי! כל ערב פרק תהילים חדש. הצטרפו אלינו לקריאת תהילים משותפת!


תהילים פרק קיט פ'

קכט פְּלָאוֹת עֵדְוֹתֶיךָ עַל כֵּן נְצָרָתַם נַפְשִׁי:קל פֵּתַח דְּבָרֶיךָ יָאִיר מֵבִין פְּתָיִים:קלא פִּי פָעַרְתִּי וָאֶשְׁאָפָה כִּי לְמִצְוֹתֶיךָ יָאָבְתִּי:קלב פְּנֵה אֵלַי וְחָנֵּנִי כְּמִשְׁפָּט לְאֹהֲבֵי שְׁמֶךָ:קלג פְּעָמַי הָכֵן בְּאִמְרָתֶךָ וְאַל תַּשְׁלֶט בִּי כָל אָוֶן:קלד פְּדֵנִי מֵעֹשֶׁק אָדָם וְאֶשְׁמְרָה פִּקּוּדֶיךָ:קלה פָּנֶיךָ הָאֵר בְּעַבְדֶּךָ וְלַמְּדֵנִי אֶת חֻקֶּיךָ:קלו פַּלְגֵי מַיִם יָרְדוּ עֵינָי עַל לֹא שָׁמְרוּ תוֹרָתֶךָ:
נקרא  3  פעמים

לוח מודעות

למעלה