標籤:style os sp for 檔案 on 問題 bs ad
下面的列子是檔案的模糊尋找,
具體功能是:選定檔案夾,搜尋所有檔案命中包含“_bui”字樣的shp圖層(尾碼為.shp)並將資訊顯示在ListView中。實際應用中可隨便修改。
這裡採用遞迴方法進行深度搜尋,淺層的搜尋就不再記錄。
List<FiledInfo>Listed=new List<FileInfo>();//儲存符合要求的檔案的FiledInfo
string hz="shp"//檔案尾碼
private int k=0;
public List<FileInfo>GetAllFiles(string path)
{
DirectoryInfo dir=new DirectorInfo(path);
if(!dir.Exists) //判斷檔案夾是否存在,一般直接選著檔案夾不會有問題,這裡是應對手動輸入的情況
return null;
if(k<1)
{
FileInfo[]fi=dir.GetFiles();
for(int i=0;i<fi.Length;i++)
{
string filestr=fi[i].Name;
if((filestr.Congtains(filestr.LastIndexOf(".")+1))==hz)
{
if(filestr.Contains("_bui")||filestr.Contains("_BUI"))
List.Add(fi[i]);
}
}
k++;
}
else
{
List<FileInfo>subList=GetFilesByDir(path);
foreach (FileInfo subFile in subList)
{
List.Add(subFile);
}
}
DirectoryInfo[] subDir = dir.GetDirectories();
string Spath = "";
foreach (DirectoryInfo d in subDir)
{
Spath = path + "\\" + d.ToString() + "\\";
GetAllFiles(Spath);
}
return List;
}
private List<FileInfo> GetFilesByDir(string path)
{
DirectoryInfo di = new DirectoryInfo(path);
//找到該目錄下的檔案
FileInfo[] fi = di.GetFiles();
//把FileInfo[]數群組轉換為List
List<FileInfo> list = new List<FileInfo>();
for (int i = 0; i < fi.Length; i++)
{
string filestr = fi[i].Name;
if ((filestr.Substring(filestr.LastIndexOf(".") + 1)) == hz)
{
if (filestr.Contains("_bui") || filestr.Contains("_BUI"))
List.Add(fi[i]);
}
}
return list;
}
C#搜尋指定檔案夾內的符合要求的檔案