PDA

View Full Version : پیدا کردن پوشه های هم نام



Helpco
شنبه 24 شهریور 1397, 08:52 صبح
من با کد زیر نام تمام پوشهای یک وپوشه بدست میارم

System.IO.DirectoryInfo dir = new System.IO.DirectoryInfo(@"\\192.168.1.243\image\Apa\a");
TreeNode Main = treeView1.Nodes.Add("Folders in: " + @"\\192.168.1.243\image\Apa\a");
Main.Tag = "";
foreach (System.IO.DirectoryInfo g in dir.GetDirectories())
{
TreeNode MainNext = Main.Nodes.Add(g.ToString());
MainNext.Tag = (g.FullName);
}
حلا اکه بخوام ببینم پوشه همنام هست یانه باید چکار کنم
البته اینو بگم منظورم از هم نام یعنی ایکه یک پوشه بنام

11a12 هست ولی ممکن یک پوشه باشه که نوشته 11a12-Delete

یعنی اسم 11a12تکرار شده بهم بگه 2عدد وجود دارده

ShayanFiroozi
شنبه 31 شهریور 1397, 11:40 صبح
سلام دوست عزیز

یکی از راه ها به این شکله ، البته نمیگم اصولی ترین راهه ولی کارتو راه میندازه.

ما یک کلاس ساده ایجاد میکنیم ، بعد یک لیست از اون کلاس درست میکنیم.


public static List<_Folder_Properties> _Folder_List = new List<_Folder_Properties>();


public class _Folder_Properties
{
public string _Folder_Path = "";
public int _Folder_Count = 0;




public _Folder_Properties(string Folder_Path)
{
_Folder_Path = Folder_Path;


__Check_For_Folder_In_List(Folder_Path);


}




private void __Check_For_Folder_In_List(string _folder_name)
{


for (int i = 0; i < _Folder_List.Count; i++)
{
if (_Folder_List[i]._Folder_Path.ToLower().Contains(_folder_name.ToLo wer()) == true)
{
_Folder_List[i]._Folder_Count++; // increase folder counter
}
}


}




}

نحوه استفاده :


_Folder_List.Add(new _Folder_Properties(@"D:\text.txt"));
_Folder_List.Add(new _Folder_Properties(@"D:\text.txt"));




MessageBox.Show(_Folder_List[0]._Folder_Path);
MessageBox.Show(_Folder_List[0]._Folder_Count.ToString());

فقط فراموش نشه در موقع بستن برنامه یا کلاس لیست رو خالی کنی چون اگر تعدا فایل ها زیاد باشه چند مگ حافظه میگیره:


_Folder_List.Clear();
_Folder_List = null;

Helpco
سه شنبه 03 مهر 1397, 14:25 عصر
سلام دوست عزیز

یکی از راه ها به این شکله ، البته نمیگم اصولی ترین راهه ولی کارتو راه میندازه.

ما یک کلاس ساده ایجاد میکنیم ، بعد یک لیست از اون کلاس درست میکنیم.


public static List<_Folder_Properties> _Folder_List = new List<_Folder_Properties>();


public class _Folder_Properties
{
public string _Folder_Path = "";
public int _Folder_Count = 0;




public _Folder_Properties(string Folder_Path)
{
_Folder_Path = Folder_Path;


__Check_For_Folder_In_List(Folder_Path);


}




private void __Check_For_Folder_In_List(string _folder_name)
{


for (int i = 0; i < _Folder_List.Count; i++)
{
if (_Folder_List[i]._Folder_Path.ToLower().Contains(_folder_name.ToLo wer()) == true)
{
_Folder_List[i]._Folder_Count++; // increase folder counter
}
}


}




}

نحوه استفاده :


_Folder_List.Add(new _Folder_Properties(@"D:\text.txt"));
_Folder_List.Add(new _Folder_Properties(@"D:\text.txt"));




MessageBox.Show(_Folder_List[0]._Folder_Path);
MessageBox.Show(_Folder_List[0]._Folder_Count.ToString());

فقط فراموش نشه در موقع بستن برنامه یا کلاس لیست رو خالی کنی چون اگر تعدا فایل ها زیاد باشه چند مگ حافظه میگیره:


_Folder_List.Clear();
_Folder_List = null;



ممکن بصورت پروژه بدید