נושאים פעיליםנושאים פעילים  הצגת רשימה של חברי הפורוםרשימת משתמשים  חיפוש בפורוםחיפוש  עזרהעזרה
  הרשמההרשמה  התחברותהתחברות RSS עדכונים
תיכנות
RSS UnderWarrior Forums : RSS תיכנות
נושא

נושא: c#.חיפוש קבצים

שליחת תגובהשליחת נושא חדש
כותב
הודעה << נושא קודם | נושא הבא >>
Madam
משתמש מתחיל
משתמש מתחיל


הצטרף / הצטרפה: 15 January 2007
משתמש: מנותק/ת
הודעות: 27
נשלח בתאריך: 05 March 2007 בשעה 15:51 | IP רשוּם
ציטוט Madam

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

static void Main(string[] args)

{

Console.WriteLine("please enter a path");

string folder = @"c:\files\";

string[] extensions = { "txt", "DLL", "tmp", "doc", "exe" };

GetFileData(folder, extensions);

}

public static void GetFileData(string path, string []extensions)

{

int count = 0;

for (int i = 0; i < extensions.Length; i++)

{

string[] files = Directory.GetFiles(path, extensions,SearchOption.TopDirectoryOnly);

for (int j = 0; j < files.Length; j++)

{

string[] extension = files[j].ToString().Split('.');

string file=extension [extension.Length-1];

if (extensions == file)

count++;

}

}

Console.WriteLine(count);

}

}



__________________
הנה חוכמת חיים שיווקית נפלאה ש"דגתי" מפי מאיר לישנסקי: "אם אתה רוצה ללכוד דג, תחשוב כמו דג ולא כמו דייג"
חזרה לתחילת העמוד הצג את כרטיס החבר של Madam חפש הודעות אחרות של Madam
 
shoshan
מנהל האתר
מנהל האתר
סמל אישי

הצטרף / הצטרפה: 16 July 2005
מדינה: Israel
משתמש: מנותק/ת
הודעות: 4637
נשלח בתאריך: 05 March 2007 בשעה 17:55 | IP רשוּם
ציטוט shoshan

עדיין לא הבנת איך שולחים קוד  ?

בכל מקרה, יש לך טעות קטנה עם המערך, שאת מעבירה את כולו במקם את האיבר במקום ה-i.

תיקון של הפונקציה:
קוד:
public static void GetFileData(string path, string[ ] extensions)
{
    int count = 0;
    for ( int i = 0 ; i < extensions.Length ; i++ )
    {
        string[ ] files = Directory.GetFiles(path,
            "*." + extensions[i], SearchOption.TopDirectoryOnly);
        count += files.Length;
        Console.WriteLine("{0} {1} files", files.Length, extensions[i]);
    }
    Console.WriteLine("----------");
    Console.WriteLine("{0} files total", count);
}



__________________
עד מתי רשעים יעלוזו?

עַל כֵּן אֶמְאַס וְנִחַמְתִּי עַל עָפָר וָאֵפֶר.
חזרה לתחילת העמוד הצג את כרטיס החבר של shoshan חפש הודעות אחרות של shoshan בקר בדף הבית של shoshan
 
Madam
משתמש מתחיל
משתמש מתחיל


הצטרף / הצטרפה: 15 January 2007
משתמש: מנותק/ת
הודעות: 27
נשלח בתאריך: 05 March 2007 בשעה 18:24 | IP רשוּם
ציטוט Madam

אני תמיד שוכחת לסדר את הקוד...סורי, זאת הפעם האחרונה.

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

ולמה מוסיפים files.Length?

תודה רבה רבה....(על כל העזרה)



__________________
הנה חוכמת חיים שיווקית נפלאה ש"דגתי" מפי מאיר לישנסקי: "אם אתה רוצה ללכוד דג, תחשוב כמו דג ולא כמו דייג"
חזרה לתחילת העמוד הצג את כרטיס החבר של Madam חפש הודעות אחרות של Madam
 
shoshan
מנהל האתר
מנהל האתר
סמל אישי

הצטרף / הצטרפה: 16 July 2005
מדינה: Israel
משתמש: מנותק/ת
הודעות: 4637
נשלח בתאריך: 05 March 2007 בשעה 20:29 | IP רשוּם
ציטוט shoshan

את רק רוצה לספור כמה קבצים יש, לכן לא צריך לעבור קובץ אחר קובץ ולהוסיף כל פעם 1 ל-count, יש לנו דרך לקבל את מספר הקבצים במערך, והדרך הזאת היא .Length

לפי המחלקות שאת משתמשת בהן אני רואה שאת משתמשת ב-2005, אני ממליץ לך להפעיל באמצעות F11 ולהמשיך ללחוץ F11 כל הזמן כדי לעבור שלב אחר שלב, וככה תוכלי לשים את העכבר מעל משתנים ולראות מה הם מכילים.


__________________
עד מתי רשעים יעלוזו?

עַל כֵּן אֶמְאַס וְנִחַמְתִּי עַל עָפָר וָאֵפֶר.
חזרה לתחילת העמוד הצג את כרטיס החבר של shoshan חפש הודעות אחרות של shoshan בקר בדף הבית של shoshan
 

אם ברצונך להגיב לנושא זה עליך קודם להתחבר
אם אינך רשום/ה כבר עליך להרשם

  שליחת תגובהשליחת נושא חדש
גרסת הדפסה גרסת הדפסה

קפיצה לפורום
אינך יכול/ה לשלוח נושאים חדשים בפורום זה
אינך יכול/ה להגיב לנושאים בפורום זה
אינך יכול/ה למחוק את הודעותיך ותגוביך בפורום זה
אינך יכול/ה לערוך את הודעותיך ותגובותיך בפורום זה
אינך יכול/ה לצור סקרים בפורום זה
אינך יכול/ה להצביע בסקרים בפורום זה