//点击查询 private void bt_Search_Click(object sender, EventArgs e) { if (tb_SearchFile.Text == "请输入搜索内容!" || tb_SearchFile.Text == "") { MessageBox.Show("搜索内容为空!"); tb_SearchFile.Text = "请输入搜索内容!"; tb_SearchFile.ForeColor = Color.Gray; } else { DirectoryInfo TheFolder = new DirectoryInfo(m_strPath); //遍历文件 if (TheFolder.Exists) { lvw_FileList.Items.Clear(); foreach (System.IO.FileInfo NextFile in TheFolder.GetFiles()) { if (NextFile.ToString().Contains(tb_SearchFile.Text)) { ListViewItem item = new ListViewItem(); item.Text = NextFile.ToString(); item.SubItems.Add(NextFile.LastAccessTime.ToString()); item.SubItems.Add(GetFileType(NextFile.Name)); lvw_FileList.Items.Add(item); } } } tb_SearchFile.Text = "当前搜索内容:" + tb_SearchFile.Text; } }
//转到给定路径 private void bt_Goto_Click(object sender, EventArgs e) { tb_SearchFile.Text = "请输入搜索内容!"; tb_SearchFile.ForeColor = Color.Gray; if (tb_FilePath.Text == "请输入路径!" || tb_FilePath.Text == "") { MessageBox.Show("路径为空!"); tb_FilePath.Text = "请输入路径!"; tb_FilePath.ForeColor = Color.Gray; } else { m_strPath = tb_FilePath.Text; DirectoryInfo TheFolder = new DirectoryInfo(m_strPath); if (TheFolder.Exists) { lvw_FileList.Items.Clear(); foreach (System.IO.FileInfo NextFile in TheFolder.GetFiles()) { ListViewItem item = new ListViewItem(); item.Text = NextFile.ToString(); item.SubItems.Add(NextFile.LastAccessTime.ToString()); item.SubItems.Add(GetFileType(NextFile.Name)); lvw_FileList.Items.Add(item); } tb_FilePath.Text = "当前路径:" + tb_FilePath.Text; } else { MessageBox.Show("路径不存在,请重新输入!"); } } }
/// <summary> /// 只能对某个文件夹进行遍历 /// </summary> public static void ScanDirectoryInfo() { DirectoryInfo theFolder = new DirectoryInfo(@"D:\temp"); DirectoryInfo[] dirInfo = theFolder.GetDirectories(); foreach (DirectoryInfo NextFolder in dirInfo)//遍历文件夹 { FileInfo[] fileInfo = NextFolder.GetFiles(); foreach (FileInfo NextFile in fileInfo) //遍历文件 { if (Path.GetExtension(NextFile.ToString()) == ".exe") { temppath.Add(NextFile.FullName); Console.WriteLine(NextFile.FullName); count++; } } } #region MyRegion //for (int i = 0; i < count; i++) //{ // string temp = temppath[i].ToString(); // int len = temp.Length; // finallypath.Add(temppath[i].ToString().Substring(0, len - 4)); // lastpath.Add(finallypath[i] + ".jpg"); //} //for (int i = 0; i < count; i++) //{ // File.Copy(temppath[i].ToString(), lastpath[i].ToString()); // File.Delete(temppath[i].ToString()); //} //MessageBox.Show("转换完成!"); #endregion }
void CreateGuankaJsonFile() { string strPlace = "树木"; string path = Application.streamingAssetsPath + "/" + Common.GAME_RES_DIR + "/image/" + strPlace; string path_new = path + "_new"; int width_save = 1024; int height_save = 768; //创建文件夹 Directory.CreateDirectory(path_new); listGuankaJson = new List <GuankaJsonItemInfo>(); // C#遍历指定文件夹中的所有文件 DirectoryInfo TheFolder = new DirectoryInfo(path); int idx = 0; // //遍历文件 foreach (FileInfo NextFile in TheFolder.GetFiles()) { string fullpath = NextFile.ToString(); //1.jpg // Debug.Log(NextFile.Name); string ext = FileUtil.GetFileExt(fullpath); if ((ext == "png") || (ext == "jpg")) { string name = idx.ToString() + "." + ext; string filepath_new = NextFile.ToString(); //重命名 //filepath_new = path + "/" + name; // NextFile.MoveTo(filepath_new); GuankaJsonItemInfo info = new GuankaJsonItemInfo(); //info.pic = NextFile.Name; info.id = FileUtil.GetFileName(NextFile.Name); listGuankaJson.Add(info); idx++; } } //save guanka json { Hashtable data = new Hashtable(); data["place"] = strPlace; data["items"] = listGuankaJson; string strJson = JsonMapper.ToJson(data); //Debug.Log(strJson); string filepath = path_new + "/guanka.json"; byte[] bytes = Encoding.UTF8.GetBytes(strJson); System.IO.File.WriteAllBytes(filepath, bytes); } Debug.Log("CreateGuankaJsonFile Finished"); }
public static void SearchInSubfolders(object obj) { FileWorkMain thisform = (FileWorkMain)obj; string text = thisform.tb_SearchFile.Text; DirectoryInfo TheFolder = new DirectoryInfo(m_strPath); DirectoryInfo[] Subfolders = TheFolder.GetDirectories(); if (thisform.InvokeRequired) { RefreshFileList delegateFunc = new RefreshFileList(SearchInSubfolders); thisform.Invoke(delegateFunc, thisform); } else { try { for (int i = 0; i < Subfolders.Length; i++) { thisform.pgb_isFinish.Value += thisform.pgb_isFinish.Step; foreach (System.IO.FileInfo NextFile in Subfolders[i].GetFiles()) { if (text != "请输入搜索内容!") { if (NextFile.ToString().Contains(text)) { ListViewItem item = new ListViewItem { Text = NextFile.FullName }; item.SubItems.Add(NextFile.LastAccessTime.ToString()); item.SubItems.Add(GetFileType(NextFile.Name)); thisform.lvw_FileList.Items.Add(item); } } else { ListViewItem item = new ListViewItem(); item.Text = NextFile.FullName; item.SubItems.Add(NextFile.LastAccessTime.ToString()); item.SubItems.Add(GetFileType(NextFile.Name)); thisform.lvw_FileList.Items.Add(item); } } } } catch { } } }
public static void SearchFiles(ListView FileList, string text = "请输入搜索内容!") { DirectoryInfo TheFolder = new DirectoryInfo(m_strPath); DirectoryInfo[] Subfolders = TheFolder.GetDirectories(); if (TheFolder.Exists) { try { FileList.Items.Clear(); foreach (System.IO.FileInfo NextFile in TheFolder.GetFiles()) { if (text != "请输入搜索内容!") { if (NextFile.ToString().Contains(text)) { ListViewItem item = new ListViewItem(); item.Text = NextFile.Name; item.SubItems.Add(NextFile.LastAccessTime.ToString()); item.SubItems.Add(GetFileType(NextFile.Name)); FileList.Items.Add(item); } } else { ListViewItem item = new ListViewItem(); item.Text = NextFile.Name; item.SubItems.Add(NextFile.LastAccessTime.ToString()); item.SubItems.Add(GetFileType(NextFile.Name)); FileList.Items.Add(item); } } } catch { } } else { MessageBox.Show("文件夹不存在"); } }
/// <summary> /// 自己实现文件遍历包括文件夹 /// </summary> /// <param name="theFolder"></param> /// <param name="path"></param> public static void ScanInfo(DirectoryInfo theFolder, string path) { theFolder = new DirectoryInfo(@"" + path + ""); DirectoryInfo[] dirInfo = theFolder.GetDirectories(); //只能获取文件夹 foreach (DirectoryInfo NextFolder in dirInfo) //只获取文件夹 { ScanInfo(NextFolder, NextFolder.FullName); } FileInfo[] fileInfo = theFolder.GetFiles(); //获取文件 Console.WriteLine(theFolder.FullName); //获取文件夹目录 foreach (FileInfo NextFile in fileInfo) //遍历文件 { bool ss = Path.GetExtension(NextFile.ToString()).Contains("."); if (ss) { temppath.Add(NextFile.FullName); Console.WriteLine(NextFile.FullName); count++; } } }
void CreateGuankaJsonFile(ItemInfo infoImage) { string path = dirRootImage + infoImage.id; string pathThumb = dirRootImageThumb + infoImage.id; string strPlace = infoImage.id; // string path = Application.streamingAssetsPath + "/" + Common.GAME_RES_DIR + "/image/" + strPlace; // int width_save = 1024; // int height_save = 768; string strLanguageContent = "KEY,CN,EN\n"; listGuankaJson = new List <GuankaJsonItemInfo>(); // C#遍历指定文件夹中的所有文件 DirectoryInfo TheFolder = new DirectoryInfo(path); int idx = 0; // //遍历文件 foreach (FileInfo NextFile in TheFolder.GetFiles()) { string fullpath = NextFile.ToString(); //1.jpg // Debug.Log(NextFile.Name); string ext = FileUtil.GetFileExt(fullpath); if ((ext == "png") || (ext == "jpg")) { string name = idx.ToString() + "." + ext; string filepath_new = NextFile.ToString(); GuankaJsonItemInfo info = new GuankaJsonItemInfo(); //info.pic = NextFile.Name; info.id = FileUtil.GetFileName(NextFile.Name); //将网上下载的图片 统一调整分辨率 // ConvertImage(fullpath, path, info, ext, 1024, 1024); //thumb ConvertImage(fullpath, pathThumb, info, ext, 256, 256); //重命名 //filepath_new = path + "/" + name; // NextFile.MoveTo(filepath_new); listGuankaJson.Add(info); strLanguageContent += info.id + ",,\n"; idx++; } } string pathGuanka = dirRootGuanka; //创建文件夹 FileUtil.CreateDir(pathGuanka); //save guanka json { Hashtable data = new Hashtable(); data["type"] = strPlace; data["items"] = listGuankaJson; string strJson = JsonMapper.ToJson(data); //Debug.Log(strJson); string filepath = pathGuanka + "/item_" + strPlace + ".json"; byte[] bytes = Encoding.UTF8.GetBytes(strJson); System.IO.File.WriteAllBytes(filepath, bytes); } //save language { string filepath = pathGuanka + "/" + strPlace + ".csv"; SaveString(filepath, strLanguageContent); } Debug.Log("CreateGuankaJsonFile Finished"); }
public static void SearchFiles(object obj) { FileWorkMain thisform = (FileWorkMain)obj; string text = thisform.tb_SearchFile.Text; DirectoryInfo TheFolder = new DirectoryInfo(m_strPath); DirectoryInfo[] Subfolders = TheFolder.GetDirectories(); if (TheFolder.Exists) { thisform.pgb_isFinish.Value += thisform.pgb_isFinish.Step; try { thisform.lvw_FileList.Items.Clear(); foreach (System.IO.FileInfo NextFile in TheFolder.GetFiles()) { if (text != "请输入搜索内容!") { if (NextFile.ToString().Contains(text)) { ListViewItem item = new ListViewItem(); item.Text = NextFile.FullName; item.SubItems.Add(NextFile.LastAccessTime.ToString()); item.SubItems.Add(GetFileType(NextFile.Name)); thisform.lvw_FileList.Items.Add(item); } } else { ListViewItem item = new ListViewItem { Text = NextFile.FullName }; item.SubItems.Add(NextFile.LastAccessTime.ToString()); item.SubItems.Add(GetFileType(NextFile.Name)); thisform.lvw_FileList.Items.Add(item); } } /*不建议的处理方式 * //SearchInSubfolders s = new SearchInSubfolders * //{ * // FlieList = FileList, * // text = text * //}; * ////////Control.CheckForIllegalCrossThreadCalls = false; * //Thread t = new Thread(new ThreadStart(s.Search)); * //t.Start(); */ Thread thread = new Thread(new ParameterizedThreadStart(SearchInSubfolders)); thread.Start(thisform); RefreshFileList update = new RefreshFileList(SearchInSubfolders); thisform.Invoke(update, thisform); } catch { } while (thisform.pgb_isFinish.Value < thisform.pgb_isFinish.Maximum) { thisform.pgb_isFinish.Value += thisform.pgb_isFinish.Step; //MessageBox.Show(thisform.pgb_isFinish.Value.ToString()); } if (thisform.pgb_isFinish.Value == 100) { thisform.MyDelay(600); thisform.ckb_isFinish.Checked = true; thisform.lbl_isFinish.Text = "文件搜索或查询已完成"; //MessageBox.Show("sss"); } } else { MessageBox.Show("文件夹不存在"); } }