C#操作文件、文件夹(复制、删除、新增、设置只读)-技术&分享
2014-05-13 22:09
651 查看
C#操作文件、文件夹(复制、删除、新增、设置只读)-技术&分享
using System; using System.IO; using System.Windows; using System.Windows.Documents; using System.Xml; namespace WorkItemCreateBussiness.HzClass { public class HzFile { /// <summary> /// 删除指定文件夹下的所有文件和子文件夹 /// </summary> /// <param name="fileFolder">指定删除的文件夹路径</param> /// <param name="isDeleteCurrentFolder">是否删除指定文件夹,true:删除;false:不删除</param> /// <returns>成功返回true,失败返回false</returns> public bool DeleteFolder(string fileFolder,bool isDeleteCurrentFolder) { try { if (Directory.Exists(fileFolder)) { foreach (var file in Directory.GetFiles(fileFolder, "*.*", SearchOption.AllDirectories)) { File.SetAttributes(file, System.IO.FileAttributes.Normal); File.Delete(file); } Directory.Delete(fileFolder, true); if (!isDeleteCurrentFolder) { Directory.CreateDirectory(fileFolder); } } } catch (Exception ex) { MessageBox.Show(ex.Message); return false; } return true; } /// <summary> /// Hzfile /// 获取指定文件的扩展名 /// </summary> /// <param name="filePath">指定文件的文件夹绝对路径</param> /// <returns>返回文件的扩展名,如果文件扩展名为空或文件路径错误则返回空</returns> public string GetFileExtension(string filePath) { string filePathExtension = ""; try { if (Directory.Exists(filePath)) { filePathExtension = filePath.Substring(filePath.LastIndexOf(".") + 1); } } catch (Exception ex) { MessageBox.Show(ex.Message); return ""; } return filePathExtension; } public void CopyBaseSql(string fromFolder, string toFolder) //拷贝sql目录下的标准sql文件到\Upgrade\BaseCode\Code目录下 { try { string shortFolderName; if (toFolder.IndexOf("相关文档") > -1) { if (Directory.Exists(toFolder)) { Directory.Delete(toFolder, true); } Directory.CreateDirectory(toFolder); } //File.SetAttributes(to,FileAttributes.Hidden); // 子文件夹 foreach (string sub in Directory.GetDirectories(fromFolder)) { shortFolderName = sub.Substring(sub.LastIndexOf("\\") + 1, sub.Length - sub.LastIndexOf("\\") - 1); CopyBaseSql(sub + "\\", toFolder + "\\" + Path.GetFileName(sub)); } //文件 foreach (string file in Directory.GetFiles(fromFolder)) { File.Copy(file, toFolder + "\\" + Path.GetFileName(file), true); } } catch { //MessageBox.Show("创建sql文件失败"); } } /// <summary> /// Hzfile /// 拷贝fromFolder文件夹所有的子目录和文件到toFolder文件夹下 /// </summary> /// <param name="fromFolder">需要拷贝的文件夹</param> /// <param name="toFolder">拷贝到的文件夹的路径</param> /// <returns>如果存在异常返回true,否则返回false</returns> public bool CopyFolder(string fromFolder, string toFolder) { try { if (Directory.Exists(toFolder)) { Directory.Delete(toFolder, true); } Directory.CreateDirectory(toFolder); // 子文件夹 foreach (string sub in Directory.GetDirectories(fromFolder)) { //shortFolderName = sub.Substring(sub.LastIndexOf("\\") + 1, sub.Length - sub.LastIndexOf("\\") - 1); CopyFolder(sub + "\\", toFolder + "\\" + Path.GetFileName(sub)); } //文件 foreach (string file in Directory.GetFiles(fromFolder)) { File.Copy(file, toFolder + "\\" + Path.GetFileName(file), true); } } catch(Exception ex) { //MessageBox.Show("创建sql文件失败"); return false; } return true; } /// <summary> /// Hzfile /// 拷贝fromFolder文件夹到toFolder文件夹下 /// </summary> /// <param name="fromFolder">需要拷贝的文件夹</param> /// <param name="toFolder">拷贝到的文件夹的路径</param> /// <returns>如果存在异常返回true,否则返回false</returns> public bool CopyFileToCommonFolder(string fromFolder, string toCommonFolder) { try { if (Directory.Exists(toCommonFolder)) { Directory.Delete(toCommonFolder, true); } Directory.CreateDirectory(toCommonFolder); //文件 foreach (string file in Directory.GetFiles(fromFolder,"*.*",SearchOption.AllDirectories)) { File.Copy(file, toCommonFolder + "\\" + Path.GetFileName(file), true); } } catch (Exception ex) { //MessageBox.Show("创建sql文件失败"); return false; } return true; } /// <summary> /// Hzfile /// 拷贝fromFolder文件夹到toFolder文件夹下, /// </summary> /// <param name="fromFolder">需要拷贝的文件夹</param> /// <param name="toFolder">拷贝到的文件夹的路径</param> /// <returns>如果存在异常返回true,否则返回false</returns> public bool CopyFileToCommonFolder(string fromFolder, string toCommonFolder,XmlDocument xmlDoc,string xPath) { try { if (Directory.Exists(toCommonFolder)) { Directory.Delete(toCommonFolder, true); } Directory.CreateDirectory(toCommonFolder); //文件 foreach (string file in Directory.GetFiles(fromFolder, "*.*", SearchOption.AllDirectories)) { string fileFullName = Path.GetFullPath(file); string fileName = Path.GetFileName(file); string folder=fileFullName.Substring(fromFolder.Length, fileFullName.Length - fromFolder.Length - fileName.Length - 1); XmlNodeList fileNode = xmlDoc.SelectNodes(@"Mysoft.Data/UpgradeData/Package/Code/File[@fileName=" + "'" + fileName + "'and @folder=" + "'" + folder + "'" + "]"); if (fileNode.Count == 1) { string updateFileName = fileNode.Item(0).SelectSingleNode("FileContent").Attributes["fileName"].Value; File.Copy(file, toCommonFolder + "\\" + updateFileName, true); } //string fileName = FileNode.ChildNodes[0].Attributes["fileName"].Value; //File.Copy(file, toCommonFolder + "\\" + fileName, true); } } catch (Exception ex) { //MessageBox.Show("创建sql文件失败"); return false; } return true; } /// <summary> /// Hzfile /// 判断rightFolder种的一个文件在leftFolder中是否存在 /// </summary> /// <param name="leftFolder">修复前文件夹</param> /// <param name="rightFolder">修复后文件夹</param> /// <param name="rightFile">需要确认是否存在的文件rightFile</param> /// <returns>右侧文件夹map路径下文件rightFile,在左边文件夹map目录下也存在,存在则返回edit,否则返回add</returns> public string DiffFileExit(string leftFolder, string rightFolder,string rightFile) { try { if (Directory.Exists(leftFolder) && Directory.Exists(rightFolder)) { //if (File.Exists(leftFolder.Substring(0, rightFile.IndexOf("after")+6) +rightFile.Substring(rightFile.IndexOf("after")+5))) if (File.Exists(leftFolder + rightFile)) { return "edit"; } else { return "add"; } } else { return ""; } } catch (Exception ex) { //MessageBox.Show(ex.Message); return ""; } return ""; } /// <summary> /// 文件夹、子文件夹、文件去只读 /// </summary> /// <param name="dirPath">指定去只读的文件夹路径</param> /// <returns>成功返回true,失败返回false</returns> public bool SetNotReadOnly(string dirPath) { try { string[] dirPathes = Directory.GetDirectories(dirPath, "*.*", SearchOption.AllDirectories); foreach (var dp in dirPathes) { if (!Directory.Exists(dp)) { continue; } DirectoryInfo dir = new DirectoryInfo(dp); dir.Attributes = FileAttributes.Normal & FileAttributes.Directory; string[] filePathes = Directory.GetFiles(dp, "*.*", SearchOption.AllDirectories); foreach (var fp in filePathes) { File.SetAttributes(fp, FileAttributes.Normal); } } } catch (Exception ex) { MessageBox.Show(ex.Message); return false; } return true; } } }
相关文章推荐
- C#文件操作源码 递归复制一个目录 递归删除文件 和 文件夹
- C#文件操作源码 递归复制一个目录 递归删除文件 和 文件夹
- 用C#操作文件/文件夹(删除,复制,移动)
- C# 文件去只读工具-线程-技术&分享
- C# 对文件与文件夹的操作包括删除、移动与复制
- C# 对文件与文件夹的操作 -- 删除、移动与复制
- C# 对文件与文件夹的操作包括删除、移动与复制
- PHP目录,文件操作详谈(文件、文件夹的生成、复制、删除、读取)
- C# 文件操作 全收录 追加、拷贝、删除、移动文件、创建目录、递归删除文件夹及文件
- linux学习入门3——linux文件基本操作(linuxcast.net)(复制、移动、重命名、创建、删除文件及文件夹)
- C# .Net读写文件 IO流 C# .Net对文件&文件夹操作
- C# 文件操作 全收录 追加、拷贝、删除、移动文件、创建目录、递归删除文件夹及文件转http://www.cnblogs.com/zhuzhiyuan/archive/2011/04/22/2024485.html
- 文件和文件夹操作(复制,剪切,删除)
- php文件及文件夹操作(创建、删除、移动、复制)
- C#文件操作 追加、拷贝、删除、移动文件、创建目录 修改文件名、文件夹名
- java中File文件的创建,删除,复制,移动,以及目录文件的删除等等,主要是文件及文件夹的操作
- php文件及文件夹操作(创建、删除、移动、复制)
- MFC下对文件及文件夹的操作(复制、剪切、删除、创建文件夹,写文件)
- C# :创建SQL Server数据库、设置SQL Server数据库为只读状态、修改和压缩SQL Server数据库、新建(删除和修改)数据表、修改(新增和删除)数据列