לוגו אתר Fresh          
 
 
  אפשרות תפריט  ראשי     אפשרות תפריט  צ'אט     אפשרות תפריט  מבזקים     אפשרות תפריט  צור קשר     חץ שמאלה ‎print ‎"Hello World!"; if‎ ‎not rules.‎know ‎then rules.‎read(); חץ ימינה  

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



  #1  
ישן 02-12-2011, 22:11
  falukky falukky אינו מחובר  
 
חבר מתאריך: 10.06.11
הודעות: 34
צריך עזרה קטנה ב-C#

אני רושם class שסורק רקורסיבי path מסויים ומחזיר את כל הקבצים באותו ה-path לתוך SortedDictionary.

כשאני רושם את המתודה שסורקת ומחזירה את התוצאה ככה שהיא לא מקבלת פרמטרים בחתימה היא לא עובדת לי, מה שקורה זה שאני עושה בדיקה וסורק תיקיה מסויימת שבה 2 קבצים ועוד תיקיה אחת בתוכה עם עוד קובץ, בסה"כ 3 קבצים.
את התיקיה הראשית עם 2 הקבצים זה מזהה ומכניסה אותם ל-
קוד:
SortedDictionary<string, FileInfo>


מה שקורה זה אח"כ ב-foreach השני היא מזהה את התיקיה השנייה שבתוך התיקיה הראשית ואז יוצאת החוצה מהמתודה ואני לא מצליח להבין למה.

זה ה-class:

קוד:
public class recursion { public string mPath {get; private set;} public DirectoryInfo mDirectory { get; private set; } public SortedDictionary<string, FileInfo> mFilesFromPath; public recursion(string path) { mPath = path; mDirectory = new DirectoryInfo(mPath); mFilesFromPath = new SortedDictionary<string, FileInfo>(); GetFiles(); } public SortedDictionary<string, FileInfo> GetFiles() { FileInfo[] files; files = mDirectory.GetFiles("*.*"); foreach (FileInfo file in files) { mFilesFromPath.Add(file.FullName, file); } DirectoryInfo[] dirs = mDirectory.GetDirectories("*.*"); foreach (DirectoryInfo directory in dirs) { GetFiles(); } return mFilesFromPath; } }


קוד:
ה-main: static void Main(string[] args) { string path = (@"C:\Users\Administrator\Desktop\temp"); recursion rec = new recursion(path); Console.ReadLine(); }


לעומת זאת עם אני רושם את אותה המתודה ככה שהיא מקבלת בחתימה שלה DirectoryInfo מסויים זה עובד

קוד:
class: public class recursion { public string mPath; public SortedDictionary<string, FileInfo> mAllFilesWithinPath; public recursion(string path) { mPath = path; DirectoryInfo mDirectory = new DirectoryInfo(mPath); mAllFilesWithinPath = new SortedDictionary<string, FileInfo>(); GetFiles(mDirectory); } public SortedDictionary<string, FileInfo> GetFiles(DirectoryInfo dirc) { List<string> allFiles = new List<string>(); FileInfo[] files; files = dirc.GetFiles("*.*"); foreach (FileInfo file in files) { try { mAllFilesWithinPath.Add(file.FullName, file); } catch (Exception) { } } DirectoryInfo[] dirs = dirc.GetDirectories(); foreach (DirectoryInfo dir in dirs) { GetFiles(dir); } return mAllFilesWithinPath; } }


main:

קוד:
static void Main(string[] args) { string path = @"D:\Downloads"; recursion rec = new recursion(path); Task getFilesTask = new Task(() => rec.GetFiles(new DirectoryInfo(path))); Console.ReadLine(); }


אשמח אם מישהו יוכל להסביר לי מה פה הבעיה שלי.
תגובה ללא ציטוט תגובה עם ציטוט חזרה לפורום
תגובה

כלי אשכול חפש באשכול זה
חפש באשכול זה:

חיפוש מתקדם
מצבי תצוגה דרג אשכול זה
דרג אשכול זה:

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

קוד vB פעיל
קוד [IMG] פעיל
קוד HTML כבוי
מעבר לפורום



כל הזמנים המוצגים בדף זה הם לפי איזור זמן GMT +2. השעה כעת היא 01:58

הדף נוצר ב 0.14 שניות עם 10 שאילתות

הפורום מבוסס על vBulletin, גירסא 3.0.6
כל הזכויות לתוכנת הפורומים שמורות © 2024 - 2000 לחברת Jelsoft Enterprises.
כל הזכויות שמורות ל Fresh.co.il ©

צור קשר | תקנון האתר