نمایش نتایج 1 تا 4 از 4

نام تاپیک: بهینه ترین روش شمارش فایلهای و پوشهایه زیر مجموعه

  1. #1
    کاربر دائمی آواتار Hossenbor
    تاریخ عضویت
    بهمن 1387
    محل زندگی
    پارس
    پست
    429

    بهینه ترین روش شمارش فایلهای و پوشهایه زیر مجموعه

    سلام دوستان من میخواستم بدونم بهینه ترین روش برای شمارش فایلها و پوشه های زیر مجموعه یک پوشه چیه من یک برنامه نوشتم متاسفانه سرعت شمارش خیلی کمه در حدود 700 فایل در ثانیه و روشمم استفاده از یک لیست برای نگهداری اسامی پوشه ها و دو حلقه یکی برای شمارش فایلها و یکی پوشه ها من قبلا یک برنامه دیده بودم که این کارو تنها بایک حلقه انجام میداد گشتم ولی پیداش نکردم ممنون میشم اگه راهنماییم کنید

  2. #2
    کاربر دائمی آواتار Esmail Solhkhah
    تاریخ عضویت
    مهر 1385
    محل زندگی
    بورکینافاسو
    پست
    1,774

    نقل قول: بهینه ترین روش شمارش فایلهای و پوشهایه زیر مجموعه

    از TreeView چرا استفاده نمیکنید که ساختار رو بصورت درختی نشون بده

    اینم کدش

    treeView1.BeginUpdate();

    string[] Directoryes = Directory.GetDirectories("c:\\windows", "*.*");
    foreach (string dir in Directoryes)
    {
    TreeNode tn = new TreeNode(dir);


    string[] files = Directory.GetFiles(dir);
    foreach (string file in files)
    {
    tn.Nodes.Add(file);
    }
    treeView1.Nodes.Add(tn);
    }

    treeView1.EndUpdate();

  3. #3
    کاربر دائمی آواتار Hossenbor
    تاریخ عضویت
    بهمن 1387
    محل زندگی
    پارس
    پست
    429

    نقل قول: بهینه ترین روش شمارش فایلهای و پوشهایه زیر مجموعه

    سلام دوست عزیز کد شما در دو سطح هست پوشه ها و فایلهایه سری اول و سری دوم به قول ما عمقش یکه من میخوام تا جاییکه عمق داره برهمن خودم برنامه ساختم اما مشکل سرعت داشتم سرعتم 700 فایل در ثانیه بود که این خیلی کمه میخوام این مقدار به بالایه 1200برسه دو راه دارم یا الگوریتمو بهبودش بدم و یا از C++‎ استفاده کنم که رابطه کاربریش و کار با اون سخته

  4. #4
    کاربر دائمی آواتار Hossenbor
    تاریخ عضویت
    بهمن 1387
    محل زندگی
    پارس
    پست
    429

    نقل قول: بهینه ترین روش شمارش فایلهای و پوشهایه زیر مجموعه

    اینم روش من

    private void button1_Click(object sender, EventArgs e)
    {
    Thread t = new Thread(add);
    t.Start();
    }
    int counter = 0, counter2 = 0, integer = 0, tmp = 0;
    void add()
    {
    tmp = DateTime.Now.Second;
    d d0 = new d(add2);
    System.Collections.ArrayList al = new System.Collections.ArrayList();
    al.Add(@"C:\windows\system32\");
    step1:
    if (al.Count != 0)
    {
    foreach (string s in System.IO.Directory.GetDirectories(al[0].ToString()))
    {
    this.Invoke(d0, (object)s);
    counter2++;
    al.Add(s);
    }
    foreach (string s in System.IO.Directory.GetFiles(al[0].ToString()))
    {
    this.Invoke(d0, (object)s);
    counter++;
    }
    }
    else
    goto step2;
    al.RemoveAt(0);
    goto step1;
    step2:
    MessageBox.Show(counter + " items founded , " + counter2 + " folders founded");
    }

    public delegate void d(string s);
    int i = 1;
    void add2(string s)
    {
    listBox1.Items.Add(s);
    button1.Text = i.ToString();
    i++;
    if (Math.Abs(DateTime.Now.Second - tmp) >= 1)
    {
    label1.Text = (i - integer) + "f/s";
    tmp = DateTime.Now.Second;
    integer = i;
    }
    }
    آخرین ویرایش به وسیله Hossenbor : شنبه 11 تیر 1390 در 17:26 عصر

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •