1.创建文件夹 //using System.IO; Directory.CreateDirectory(%%1); 2.创建文件 //using System.IO; File.Create(%%1); 3.删除文件 //using System.IO; File.Delete(%%1); 4.删除文件夹 //using System.IO; Directory.Delete(%%1); 5.删除一个目录下所有的文件夹 //using System.IO; foreach (string dirStr in Directory.GetDirectories(%%1)) { DirectoryInfo dir = new DirectoryInfo(dirStr); ArrayList folders=new ArrayList(); FileSystemInfo[] fileArr = dir.GetFileSystemInfos(); for (int i = 0; i < folders.Count; i++) { FileInfo f = folders[i] as FileInfo; if (f == null) { DirectoryInfo d = folders[i] as DirectoryInfo; Directory.Delete(%%1+"//"+d.Name); } } } 6.清空文件夹 //using System.IO; Directory.Delete(%%1,true); Directory.CreateDirectory(%%1); 7.读取文件 //using System.IO; StreamReader s = File.OpenText(%%1); string %%2 = null; while ((%%2 = s.ReadLine()) != null){ %%3 } s.Close(); 8.写入文件 //using System.IO; FileInfo f = new FileInfo(%%1); StreamWriter w = f.CreateText(); w.WriteLine(%%2); w.Close(); 9.写入随机文件 //using System.IO; // Create random data to write to the file. byte[] dataArray = new byte[100000];//new Random().NextBytes(dataArray); using(fileStream fileStream = new fileStream(%%1, FileMode.Create)){ // Write the data to the file, byte by byte. for(int i = 0; i < dataArray.Length; i++){ fileStream.WriteByte(dataArray[i]); } // Set the stream position to the beginning of the file. fileStream.Seek(0, SeekOrigin.Begin); // Read and verify the data. for(int i = 0; i < fileStream.Length; i++){ if(dataArray[i] != fileStream.ReadByte()){ //写入数据错误 return; } } //"数据流"+fileStream.Name+"已验证" } 10.读取文件属性 //using System.IO; FileInfo f = new FileInfo(%%1);//f.CreationTime,f.FullName if((f.Attributes & FileAttributes.ReadOnly) != 0){ %%2 } else{ %%3 } 11.写入属性 //using System.IO; FileInfo f = new FileInfo(%%1); //设置只读 f.Attributes = myFile.Attributes | FileAttributes.ReadOnly; //设置可写 f.Attributes = myFile.Attributes & ~FileAttributes.ReadOnly; 12.枚举一个文件夹中的所有文件夹 //using System.IO; foreach (string %%2 in Directory.GetDirectories(%%1)){ %%3 } /* DirectoryInfo dir = new DirectoryInfo(%%1); FileInfo[] files = dir.GetFiles("*.*"); foreach(FileInfo %%2 in files){ %%3 } */ 13.复制文件夹 /* using System.IO; using System.Collections; */ string path = (%%2.LastIndexOf("//") == %%2.Length - 1) ? %%2 : %%2+"//"; string parent = Path.GetDirectoryName(%%1); Directory.CreateDirectory(path + Path.GetFileName(%%1)); %%1 = (%%1.LastIndexOf("//") == %%1.Length - 1) ? %%1 : %%1 + "//"; DirectoryInfo dir = new DirectoryInfo(%%1); FileSystemInfo[] fileArr = dir.GetFileSystemInfos(); Queue<FileSystemInfo> Folders = new Queue<FileSystemInfo>(dir.GetFileSystemInfos()); while (Folders.Count>0) { FileSystemInfo tmp = Folders.Dequeue(); FileInfo f = tmp as FileInfo; if (f == null) { DirectoryInfo d = tmp as DirectoryInfo; Directory.CreateDirectory(d.FullName.Replace((parent.LastIndexOf("//") == parent.Length - 1) ? parent : parent + "//", path)); foreach (FileSystemInfo fi in d.GetFileSystemInfos()) { Folders.Enqueue(fi); } } else { f.CopyTo(f.FullName.Replace(parent, path)); } } 14.复制目录下所有的文件夹到另一个文件夹下 /* using System.IO; using System.Collections; */ DirectoryInfo d = new DirectoryInfo(%%1); foreach (DirectoryInfo dirs in d.GetDirectories()) { Queue<FileSystemInfo> al = new Queue<FileSystemInfo>(dirs.GetFileSystemInfos()); while (al.Count > 0) { FileSystemInfo temp = al.Dequeue(); FileInfo file = temp as FileInfo; if (file == null) { DirectoryInfo directory = temp as DirectoryInfo; Directory.CreateDirectory(path + directory.Name); foreach (FileSystemInfo fsi in directory.GetFileSystemInfos()) al.Enqueue(fsi); } else File.Copy(file.FullName, path + file.Name); } } 15.移动文件夹 /* using System.IO; using System.Collections; */ string filename = Path.GetFileName(%%1); string path=(%%2.LastIndexOf("//") == %%2.Length - 1) ? %%2 : %%2 + "//"; if (Path.GetPathRoot(%%1) == Path.GetPathRoot(%%2)) Directory.Move(%%1, path + filename); else { string parent = Path.GetDirectoryName(%%1); Directory.CreateDirectory(path + Path.GetFileName(%%1)); %%1 = (%%1.LastIndexOf("//") == %%1.Length - 1) ? %%1 : %%1 + "//"; DirectoryInfo dir = new DirectoryInfo(%%1); FileSystemInfo[] fileArr = dir.GetFileSystemInfos(); Queue<FileSystemInfo> Folders = new Queue<FileSystemInfo>(dir.GetFileSystemInfos()); while (Folders.Count > 0) { FileSystemInfo tmp = Folders.Dequeue(); FileInfo f = tmp as FileInfo; if (f == null) { DirectoryInfo d = tmp as DirectoryInfo; DirectoryInfo dpath = new DirectoryInfo(d.FullName.Replace((parent.LastIndexOf("//") == parent.Length - 1) ? parent : parent + "//", path)); dpath.Create(); foreach (FileSystemInfo fi in d.GetFileSystemInfos()) { Folders.Enqueue(fi); } } else { f.MoveTo(f.FullName.Replace(parent, path)); } } Directory.Delete(%%1, true); } 16.移动目录下所有的文件夹到另一个目录下 //using System.IO; //using System.Collections; string filename = Path.GetFileName(%%1); if (Path.GetPathRoot(%%1) == Path.GetPathRoot(%%2)) foreach (string dir in Directory.GetDirectories(%%1)) Directory.Move(dir, Path.Combine(%%2,filename)); else { foreach (string dir2 in Directory.GetDirectories(%%1)) { string parent = Path.GetDirectoryName(dir2); Directory.CreateDirectory(Path.Combine(%%2, Path.GetFileName(dir2))); string dir = (dir2.LastIndexOf("//") == dir2.Length - 1) ? dir2 : dir2 + "//"; DirectoryInfo dirdir = new DirectoryInfo(dir); FileSystemInfo[] fileArr = dirdir.GetFileSystemInfos(); Queue<FileSystemInfo> Folders = new Queue<FileSystemInfo>(dirdir.GetFileSystemInfos()); while (Folders.Count > 0) { FileSystemInfo tmp = Folders.Dequeue(); FileInfo f = tmp as FileInfo; if (f == null) { DirectoryInfo d = tmp as DirectoryInfo; DirectoryInfo dpath = new DirectoryInfo(d.FullName.Replace((parent.LastIndexOf("//") == parent.Length - 1) ? parent : parent + "//", %%2)); dpath.Create(); foreach (FileSystemInfo fi in d.GetFileSystemInfos()) { Folders.Enqueue(fi); } } else { f.MoveTo(f.FullName.Replace(parent, %%2)); } } dirdir.Delete(true); } } 17.以一个文件夹的框架在另一个目录创建文件夹和空文件 //using System.IO; //using System.Collections; bool b=false;//不创建空文件 string path = (%%2.LastIndexOf("//") == %%2.Length - 1) ? %%2 : %%2 + "//"; string parent = Path.GetDirectoryName(%%1); Directory.CreateDirectory(path + Path.GetFileName(%%1)); %%1 = (%%1.LastIndexOf("//") == %%1.Length - 1) ? %%1 : %%1 + "//"; DirectoryInfo dir = new DirectoryInfo(%%1); FileSystemInfo[] fileArr = dir.GetFileSystemInfos(); Queue<FileSystemInfo> Folders = new Queue<FileSystemInfo>(dir.GetFileSystemInfos()); while (Folders.Count > 0) { FileSystemInfo tmp = Folders.Dequeue(); FileInfo f = tmp as FileInfo; if (f == null) { DirectoryInfo d = tmp as DirectoryInfo; Directory.CreateDirectory(d.FullName.Replace((parent.LastIndexOf("//") == parent.Length - 1) ? parent : parent + "//", path)); foreach (FileSystemInfo fi in d.GetFileSystemInfos()) { Folders.Enqueue(fi); } } else { if(b) File.Create(f.FullName.Replace(parent, path)); } } 18.复制文件 //using System.IO; File.Copy(%%1,%%2); 19.复制一个文件夹下所有的文件到另一个目录 //using System.IO; foreach (string fileStr in Directory.GetFiles(%%1)) File.Copy((%%1.LastIndexOf("//") == %%1.Length - 1) ? %%1 +Path.GetFileName(fileStr): %%1 + "//"+Path.GetFileName(fileStr),(%%2.LastIndexOf("//") == %%2.Length - 1) ? %%2 +Path.GetFileName(fileStr): %%2 + "//"+Path.GetFileName(fileStr)); 20.提取扩展名 //using System.IO; string %%2=Path.GetExtension(%%1); 21.提取文件名 //using System.IO; string %%2=Path.GetFileName(%%1); 22.提取文件路径 //using System.IO; string %%2=Path.GetDirectoryName(%%1); 23.替换扩展名 //using System.IO; File.ChangeExtension(%%1,%%2); 24.追加路径 //using System.IO; string %%3=Path.Combine(%%1,%%2); 25.移动文件 //using System.IO; File.Move(%%1,%%2+"//"+file.getname(%%1)); 26.移动一个文件夹下所有文件到另一个目录 foreach (string fileStr in Directory.GetFiles(%%1)) File.Move((%%1.LastIndexOf("//") == %%1.Length - 1) ? %%1 +Path.GetFileName(fileStr): %%1 + "//"+Path.GetFileName(fileStr),(%%2.LastIndexOf("//") == %%2.Length - 1) ? %%2 +Path.GetFileName(fileStr): %%2 + "//"+Path.GetFileName(fileStr)); 27.指定目录下搜索文件 //using System.Text; //using System.IO; string fileName=%%1; string dirName=%%2; DirectoryInfo dirc=new DirectoryInfo(dirName); foreach(FileInfo file in dirc.GetFiles()) { if(file.Name.IndexOf(fileName)>-1) return file.FullName; } foreach(DirectoryInfo dir in dirc.GetDirectories()) { return GetFile(fileName,dir.FullName); } return "找不到指定的文件"; } 28.打开对话框 OpenFileDialog openFileDialog=new OpenFileDialog(); openFileDialog.InitialDirectory=/"c://///";//注意这里写路径时要用c:////而不是c:// openFileDialog.Filter=/"文本文件|*.*|C#文件|*.cs|所有文件|*.*/"; openFileDialog.RestoreDirectory=true; openFileDialog.FilterIndex=1; if (openFileDialog.ShowDialog()==DialogResult.OK) { fName=openFileDialog.FileName; File fileOpen=new File(fName); isFileHaveName=true; %%1=fileOpen.ReadFile(); %%1.AppendText(/"/"); } 29.文件分割 //using System.IO; fileStream fsr = new fileStream(%%1, FileMode.Open, FileAccess.Read); byte[] btArr = new byte[fsr.Length]; fsr.Read(btArr, 0, btArr.Length); fsr.Close(); string strFileName=%%1.Substring(%%1.LastIndexOf("//")+1); fileStream fsw = new fileStream(%%2 + strFileName + "1", FileMode.Create, FileAccess.Write); fsw.Write(btArr, 0, btArr.Length/2); fsw.Close(); fsw = new fileStream(%%2 + strFileName + "2", FileMode.Create, FileAccess.Write); fsw.Write(btArr, btArr.Length/2, btArr.Length-btArr.Length/2); fsw.Close(); 30.文件合并 //using System.IO; string strFileName = %%1.Substring(%%1.LastIndexOf("//") + 1); fileStream fsr1 = new fileStream(%%2 + strFileName + "1", FileMode.Open, FileAccess.Read); fileStream fsr2 = new fileStream(%%2 + strFileName + "2", FileMode.Open, FileAccess.Read); byte[] btArr = new byte[fsr1.Length+fsr2.Length]; fsr1.Read(btArr, 0, Convert.ToInt32(fsr1.Length)); fsr2.Read(btArr, Convert.ToInt32(fsr1.Length), Convert.ToInt32(fsr2.Length)); fsr1.Close();fsr2.Close(); fileStream fsw = new fileStream(%%2 + strFileName, FileMode.Create, FileAccess.Write); fsw.Write(btArr, 0, btArr.Length); fsw.Close(); 31.文件简单加密 //using System.IO; //读文件 fileStream fsr = new fileStream(%%1, FileMode.Open, FileAccess.Read); byte[] btArr = new byte[fsr.Length]; fsr.Read(btArr, 0, btArr.Length); fsr.Close(); for (int i = 0; i < btArr.Length; i++){ //加密 int ibt = btArr[i]; ibt += 100; ibt %= 256; btArr[i] = Convert.ToByte(ibt); } //写文件 string strFileName = Path.GetExtension(%%1); fileStream fsw = new fileStream(%%2+"/" + "enc_" + strFileName, FileMode.Create, FileAccess.Write); fsw.Write(btArr, 0, btArr.Length); fsw.Close(); 32.文件简单解密 //using System.IO; fileStream fsr = new fileStream(%%1, FileMode.Open, FileAccess.Read); byte[] btArr = new byte[fsr.Length]; fsr.Read(btArr, 0, btArr.Length); fsr.Close(); for (int i = 0; i < btArr.Length; i++){ //解密 int ibt = btArr[i]; ibt -= 100; ibt += 256; ibt %= 256; btArr[i] = Convert.ToByte(ibt); } //写文件 string strFileName = Path.GetExtension(%%1); fileStream fsw = new fileStream(%%2 +"/" + strFileName, FileMode.Create, FileAccess.Write); fsw.Write(btArr, 0, btArr.Length); fsw.Close(); 33.读取ini文件属性 //using System.Runtime.InteropServices; //[DllImport("kernel32")]//返回取得字符串缓冲区的长度 //private static extern long GetPrivateProfileString(string section,string key, string def,StringBuilder retVal,int size,string filePath); string Section=%%1; string Key=%%2; string NoText=%%3; string iniFilePath="Setup.ini"; string %%4=String.Empty; if(File.Exists(iniFilePath)){ StringBuilder temp = new StringBuilder(1024); GetPrivateProfileString(Section,Key,NoText,temp,1024,iniFilePath); %%4=temp.ToString(); } 34.合并一个文件下所有的文件 //using System.IO; fileStream fsw = new fileStream(%%2, FileMode.Create, FileAccess.Write); foreach (string fileStr in Directory.GetFiles(%%1)) { fileStream fsr1 = new fileStream(fileStr, FileMode.Open, FileAccess.Read); byte[] btArr = new byte[fsr1.Length]; fsr1.Read(btArr, 0, Convert.ToInt32(fsr1.Length)); fsr1.Close(); fsw.Write(btArr, 0, btArr.Length); } fsw.Close(); 35.写入ini文件属性 //using System.Runtime.InteropServices; //[DllImport("kernel32")]//返回0表示失败,非0为成功 //private static extern long WritePrivateProfileString(string section,string key, string val,string filePath); string Section=%%1; string Key=%%2; string Value=%%3; string iniFilePath="Setup.ini"; bool %%4=false; if(File.Exists(iniFilePath)) { long OpStation = WritePrivateProfileString(Section,Key,Value,iniFilePath); if(OpStation == 0) { %%4=false; } else { %%4=true; } } 36.获得当前路径 string %%1=Environment.CurrentDirectory.ToString(); 37.读取XML数据库 //using System.Xml; XmlDocument doc=new XmlDocument(); doc.Load(%%1); string %%9; XmlElement xe=doc.GetElementById(%%7); XmlNodeList elemList=xe.ChildNodes; foreach(XmlNode elem in elemList) { if(elem.NodeType==%%8) { %%9=elem.Value; break; } } 38.写入XML数据库 //using System.Xml; XmlDocument doc=new XmlDocument(); doc.Load(%%1); XmlNode root=doc.DocumentElement; XmlElement book=doc.CreateElement(%%3); XmlElement book=doc.CreateElement(%%5); XmlElement port=doc.CreateElement(%%6); book.SetAttribute(%%4,root.ChildNodes.Count.ToString()); author.InnerText=%%8; book.appendChild(author); book.appendChild(port); root.appendChild(book); doc.Save(%%1); 39.ZIP压缩文件 //using System.IO; //using System.IO.Compression; fileStream infile; try { // Open the file as a fileStream object. infile = new fileStream(%%1, FileMode.Open, FileAccess.Read, FileShare.Read); byte[] buffer = new byte[infile.Length]; // Read the file to ensure it is readable. int count = infile.Read(buffer, 0, buffer.Length); if (count != buffer.Length) { infile.Close(); //Test Failed: Unable to read data from file return; } infile.Close(); MemoryStream ms = new MemoryStream(); // Use the newly created memory stream for the compressed data. DeflateStream compressedzipStream = new DeflateStream(ms, CompressionMode.Compress, true); //Compression compressedzipStream.Write(buffer, 0, buffer.Length); // Close the stream. compressedzipStream.Close(); //Original size: {0}, Compressed size: {1}", buffer.Length, ms.Length); FileInfo f = new FileInfo(%%2); StreamWriter w = f.CreateText(); w.Write(buffer,0,ms.Length); w.Close(); } // end try catch (InvalidDataException) { //Error: The file being read contains invalid data. } catch (FileNotFoundException) { //Error:The file specified was not found. } catch (ArgumentException) { //Error: path is a zero-length string, contains only white space, or contains one or more invalid characters } catch (PathTooLongException) { //Error: The specified path, file name, or both exceed the system-defined maximum length. For example, on Windows-based platforms, paths must be less than 248 characters, and file names must be less than 260 characters. } catch (DirectoryNotFoundException) { //Error: The specified path is invalid, such as being on an unmapped drive. } catch (IOException) { //Error: An I/O error occurred while opening the file. } catch (UnauthorizedAccessException) { //Error: path specified a file that is read-only, the path is a directory, or caller does not have the required permissions. } catch (IndexOutOfRangeException) { //Error: You must provide parameters for MyGZIP. } 40.ZIP解压缩 //using System.IO; //using System.IO.Compression; fileStream infile; try { // Open the file as a fileStream object. infile = new fileStream(%%1, FileMode.Open, FileAccess.Read, FileShare.Read); byte[] buffer = new byte[infile.Length]; // Read the file to ensure it is readable. int count = infile.Read(buffer, 0, buffer.Length); if (count != buffer.Length) { infile.Close(); //Test Failed: Unable to read data from file return; } infile.Close(); MemoryStream ms = new MemoryStream(); // ms.Position = 0; DeflateStream zipStream = new DeflateStream(ms, CompressionMode.Decompress); //Decompression byte[] decompressedBuffer = new byte[buffer.Length *2]; zipStream.Close(); FileInfo f = new FileInfo(%%2); StreamWriter w = f.CreateText(); w.Write(decompressedBuffer); w.Close(); } // end try catch (InvalidDataException) { //Error: The file being read contains invalid data. } catch (FileNotFoundException) { //Error:The file specified was not found. } catch (ArgumentException) { //Error: path is a zero-length string, contains only white space, or contains one or more invalid characters } catch (PathTooLongException) { //Error: The specified path, file name, or both exceed the system-defined maximum length. For example, on Windows-based platforms, paths must be less than 248 characters, and file names must be less than 260 characters. } catch (DirectoryNotFoundException) { //Error: The specified path is invalid, such as being on an unmapped drive. } catch (IOException) { //Error: An I/O error occurred while opening the file. } catch (UnauthorizedAccessException) { //Error: path specified a file that is read-only, the path is a directory, or caller does not have the required permissions. } catch (IndexOutOfRangeException) { //Error: You must provide parameters for MyGZIP. } 41.获得应用程序完整路径 string %%1=Application.ExecutablePath; 42.ZIP压缩文件夹 /* using System.IO; using System.IO.Compression; using System.Runtime.Serialization; using System.Runtime.Serialization.Formatters.Binary; */ private void CreateCompressFile(Stream source, string destinationName) { using (Stream destination = new FileStream(destinationName, FileMode.Create, FileAccess.Write)) { using (GZipStream output = new GZipStream(destination, CompressionMode.Compress)) { byte[] bytes = new byte[4096]; int n; while ((n = source.Read(bytes, 0, bytes.Length)) != 0) { output.Write(bytes, 0, n); } } } } ArrayList list = new ArrayList(); foreach (string f in Directory.GetFiles(%%1)) { byte[] destBuffer = File.ReadAllBytes(f); SerializeFileInfo sfi = new SerializeFileInfo(f, destBuffer); list.Add(sfi); } IFormatter formatter = new BinaryFormatter(); using (Stream s = new MemoryStream()) { formatter.Serialize(s, list); s.Position = 0; CreateCompressFile(s, %%2); } [Serializable] class SerializeFileInfo { public SerializeFileInfo(string name, byte[] buffer) { fileName = name; fileBuffer = buffer; } string fileName; public string FileName { get { return fileName; } } byte[] fileBuffer; public byte[] FileBuffer { get { return fileBuffer; } } } 43.递归删除目录下的文件 //using System.IO; DirectoryInfo DInfo=new DirectoryInfo(%%1); FileSystemInfo[] FSInfo=DInfo.GetFileSystemInfos(); for(int i=0;i<FSInfo.Length;i++) { FileInfo FInfo=new FileInfo(%%1+FSInfo[i].ToString()); FInfo.Delete(); } 44.验证DTD // Set the validation settings. //using System.Xml; //using System.Xml.Schema; XmlReaderSettings settings = new XmlReaderSettings(); settings.ProhibitDtd = false; settings.ValidationType = ValidationType.DTD; settings.ValidationEventHandler += new ValidationEventHandler(ValidationCallBack); // Create the XmlReader object. XmlReader reader = XmlReader.Create("my book.xml", settings); // Parse the file. while (reader.Read()); // Display any validation errors. private static void ValidationCallBack(object sender, ValidationEventArgs e) { Console.WriteLine("Validation Error: {0}", e.Message); } 45.Schema 验证 //using System.Xml; //using System.Xml.Schema; Boolean m_success; XmlValidatingReader reader = null; XmlSchemaCollection myschema = new XmlSchemaCollection(); ValidationEventHandler eventHandler = new ValidationEventHandler(ShowCompileErrors); try { //Create the XML fragment to be parsed. String xmlFrag = "<author xmlns='urn:bookstore- schema'xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance'>" + "<first-name>Herman</first-name>" + "<last-name>Melville</last-name>" + "</author>"; //Create the XmlParserContext. XmlParserContext context = new XmlParserContext(null, null, "", XmlSpace.None); //Implement the reader. reader = new XmlValidatingReader(xmlFrag, XmlNodeType.Element, context); //Add the schema. myschema.Add("urn:bookstore-schema", "c://Books.xsd"); //Set the schema type and add the schema to the reader. reader.ValidationType = ValidationType.Schema; reader.Schemas.Add(myschema); while (reader.Read()) { } Console.WriteLine("Completed validating xmlfragment"); } catch (XmlException XmlExp) { Console.WriteLine(XmlExp.Message); } catch(XmlSchemaException XmlSchExp) { Console.WriteLine(XmlSchExp.Message); } catch(Exception GenExp) { Console.WriteLine(GenExp.Message); } finally { Console.Read(); } public static void ShowCompileErrors(object sender, ValidationEventArgs args) { Console.WriteLine("Validation Error: {0}", args.Message); } 46.Grep /* using System.Collections; using System.Text.RegularExpressions; using System.IO; using System.Security; using CommandLine.Utility; */ //Traditionally grep stands for "Global Regular Expression Print". //Global means that an entire file is searched. //Regular Expression means that a regular expression string is used to establish a search pattern. //Print means that the command will display its findings. //Simply put, grep searches an entire file for the pattern you want and displays its findings. // //The use syntax is different from the traditional Unix syntax, I prefer a syntax similar to //csc, the C# compiler. // // grep [/h|/H] - Usage Help // // grep [/c] [/i] [/l] [/n] [/r] /E:reg_exp /F:files // // /c - print a count of matching lines for each input file; // /i - ignore case in pattern; // /l - print just files (scanning will stop on first match); // /n - prefix each line of output with line number; // /r - recursive search in subdirectories; // // /E:reg_exp - the Regular Expression used as search pattern. The Regular Expression can be delimited by // quotes like "..." and '...' if you want to include in it leading or trailing blanks; // // /F:files - the list of input files. The files can be separated by commas as in /F:file1,file2,file3 //and wildcards can be used for their specification as in /F:*file?.txt; // //Example: // // grep /c /n /r /E:" C Sharp " /F:*.cs //Option Flags private bool m_bRecursive; private bool m_bIgnoreCase; private bool m_bJustFiles; private bool m_bLineNumbers; private bool m_bCountLines; private string m_strRegEx; private string m_strFiles; //ArrayList keeping the Files private ArrayList m_arrFiles = new ArrayList(); //Properties public bool Recursive { get { return m_bRecursive; } set { m_bRecursive = value; } } public bool IgnoreCase { get { return m_bIgnoreCase; } set { m_bIgnoreCase = value; } } public bool JustFiles { get { return m_bJustFiles; } set { m_bJustFiles = value; } } public bool LineNumbers { get { return m_bLineNumbers; } set { m_bLineNumbers = value; } } public bool CountLines { get { return m_bCountLines; } set { m_bCountLines = value; } } public string RegEx { get { return m_strRegEx; } set { m_strRegEx = value; } } public string Files { get { return m_strFiles; } set { m_strFiles = value; } } //Build the list of Files private void GetFiles(String strDir, String strExt, bool bRecursive) { //search pattern can include the wild characters '*' and '?' string[] fileList = Directory.GetFiles(strDir, strExt); for(int i=0; i<fileList.Length; i++) { if(File.Exists(fileList[i])) m_arrFiles.Add(fileList[i]); } if(bRecursive==true) { //Get recursively from subdirectories string[] dirList = Directory.GetDirectories(strDir); for(int i=0; i<dirList.Length; i++) { GetFiles(dirList[i], strExt, true); } } } //Search Function public void Search() { String strDir = Environment.CurrentDirectory; //First empty the list m_arrFiles.Clear(); //Create recursively a list with all the files complying with the criteria String[] astrFiles = m_strFiles.Split(new Char[] {','}); for(int i=0; i<astrFiles.Length; i++) { //Eliminate white spaces astrFiles[i] = astrFiles[i].Trim(); GetFiles(strDir, astrFiles[i], m_bRecursive); } //Now all the Files are in the ArrayList, open each one //iteratively and look for the search string String strResults = "Grep Results:/r/n/r/n"; String strLine; int iLine, iCount; bool bEmpty = true; IEnumerator enm = m_arrFiles.GetEnumerator(); while(enm.MoveNext()) { try { StreamReader sr = File.OpenText((string)enm.Current); iLine = 0; iCount = 0; bool bFirst = true; while((strLine = sr.ReadLine()) != null) { iLine++; //Using Regular Expressions as a real Grep Match mtch; if(m_bIgnoreCase == true) mtch = Regex.Match(strLine, m_strRegEx, RegexOptions.IgnoreCase); else mtch = Regex.Match(strLine, m_strRegEx); if(mtch.Success == true) { bEmpty = false; iCount++; if(bFirst == true) { if(m_bJustFiles == true) { strResults += (string)enm.Current + "/r/n"; break; } else strResults += (string)enm.Current + ":/r/n"; bFirst = false; } //Add the Line to Results string if(m_bLineNumbers == true) strResults += " " + iLine + ": " + strLine + "/r/n"; else strResults += " " + strLine + "/r/n"; } } sr.Close(); if(bFirst == false) { if(m_bCountLines == true) strResults += " " + iCount + " Lines Matched/r/n"; strResults += "/r/n"; } } catch(SecurityException) { strResults += "/r/n" + (string)enm.Current + ": Security Exception/r/n/r/n"; } catch(FileNotFoundException) { strResults += "/r/n" + (string)enm.Current + ": File Not Found Exception/r/n"; } } if(bEmpty == true) Console.WriteLine("No matches found!"); else Console.WriteLine(strResults); } //Print Help private static void PrintHelp() { Console.WriteLine("Usage: grep [/h|/H]"); Console.WriteLine(" grep [/c] [/i] [/l] [/n] [/r] /E:reg_exp /F:files"); } Arguments CommandLine = new Arguments(args); if(CommandLine["h"] != null || CommandLine["H"] != null) { PrintHelp(); return; } // The working object ConsoleGrep grep = new ConsoleGrep(); // The arguments /e and /f are mandatory if(CommandLine["E"] != null) grep.RegEx = (string)CommandLine["E"]; else { Console.WriteLine("Error: No Regular Expression specified!"); Console.WriteLine(); PrintHelp(); return; } if(CommandLine["F"] != null) grep.Files = (string)CommandLine["F"]; else { Console.WriteLine("Error: No Search Files specified!"); Console.WriteLine(); PrintHelp(); return; } grep.Recursive = (CommandLine["r"] != null); grep.IgnoreCase = (CommandLine["i"] != null); grep.JustFiles = (CommandLine["l"] != null); if(grep.JustFiles == true) grep.LineNumbers = false; else grep.LineNumbers = (CommandLine["n"] != null); if(grep.JustFiles == true) grep.CountLines = false; else grep.CountLines = (CommandLine["c"] != null); // Do the search grep.Search(); 47.直接创建多级目录 //using System.IO; DirectoryInfo di=new DirectoryInfo(%%1); di.CreateSubdirectory(%%2); 48.批量重命名 //using System.IO; string strOldFileName; string strNewFileName; string strOldPart =this.textBox1.Text.Trim();//重命名文件前的文件名等待替换字符串 string strNewPart = this.textBox2.Text.Trim();//重命名文件后的文件名替换字符串 string strNewFilePath; string strFileFolder; //原始图片目录 int TotalFiles = 0; DateTime StartTime = DateTime.Now; //获取开始时间 FolderBrowserDialog f1 = new FolderBrowserDialog(); //打开选择目录对话框 if (f1.ShowDialog() == DialogResult.OK) { strFileFolder = f1.SelectedPath; DirectoryInfo di = new DirectoryInfo(strFileFolder); FileInfo[] filelist = di.GetFiles("*.*"); int i = 0; foreach (FileInfo fi in filelist) { strOldFileName = fi.Name; strNewFileName = fi.Name.Replace(strOldPart, strNewPart); strNewFilePath = @strFileFolder + "//" + strNewFileName; filelist[i].MoveTo(@strNewFilePath); TotalFiles += 1; this.listBox1.Items.Add("文件名:" + strOldFileName + "已重命名为" + strNewFileName); i += 1; } } DateTime EndTime = DateTime.Now;//获取结束时间 TimeSpan ts = EndTime - StartTime; this.listBox1.Items.Add("总耗时:" + ts.Hours.ToString() + "时" +ts.Minutes.ToString() + "分" + ts.Seconds.ToString() + "秒"); 49.文本查找替换 /* using System.Text; using System.Text.RegularExpressions; using System.IO; */ if (args.Length == 0||(args.Length == 1 && (args[0] == "/?" || args[0] == "?" || args[0] == "-?"))) { Console.WriteLine("replace 命令行工具"); Console.WriteLine("作者:[email protected]"); Console.WriteLine("CSDN:http://blog.csdn.net/zj53hao"); Console.WriteLine("用途:在很多需要动态更改某些软件的配置文件时非常有用"); Console.WriteLine(); Console.WriteLine(); Console.WriteLine("replace 命令使用语法说明"); Console.WriteLine(" replace [/?|?|-?] 显示帮助信息"); Console.WriteLine(" replace [path/]filename search replace [/option] 替换文本文件中的字符串,支持通配符文件名"); Console.WriteLine(" replace setname search replace [/option] 替换参数变量中的字符串"); Console.WriteLine("/option参数说明:"); Console.WriteLine(" i 区分大小写. 默认不区分"); Console.WriteLine(" r 使用正则表达式查找文本。留空则使用纯文本替换"); Console.WriteLine(" f 替换文件 默认"); Console.WriteLine(" v 替换的是系统环境变量.和f不能同时出现"); Console.WriteLine(); Console.WriteLine("如: replace *.txt 查找字符串 替换字符串"); Console.WriteLine("如: replace setname 查找字符串 替换字符串"); Console.WriteLine("如: replace myinc/*.txt 查找字符串 替换字符串 /i"); Console.WriteLine("如: replace setname 查找字符串 替换字符串 /irv"); } if (args.Length == 3) { ReplaceFiles(args[0],args[1],args[2],null); } if (args.Length == 4) { if (args[3].Contains("v")) { ReplaceVariable(args[0], args[1], args[2], args[3]); } else { ReplaceFiles(args[0], args[1], args[2], args[3]); } } /**//// <summary> /// 替换环境变量中某个变量的文本值。可以是系统变量,用户变量,临时变量。替换时会覆盖原始值。小心使用 /// </summary> /// <param name="variable"></param> /// <param name="search"></param> /// <param name="replace"></param> /// <param name="options"></param> public static void ReplaceVariable(string variable, string search, string replace, string options) { string text=Environment.GetEnvironmentVariable(variable); System.Windows.Forms.MessageBox.Show(text); text=ReplaceText(text, search, replace, options); Environment.SetEnvironmentVariable(variable, text); text = Environment.GetEnvironmentVariable(variable); System.Windows.Forms.MessageBox.Show(text); } /**//// <summary> /// 批量替换文件文本 /// </summary> /// <param name="args"></param> public static void ReplaceFiles(string path,string search, string replace, string options) { string[] fs; if(File.Exists(path)){ ReplaceFile(path, search, replace, options); return; } if (Directory.Exists(path)) { fs = Directory.GetFiles(path); foreach (string f in fs) { ReplaceFile(f, search, replace, options); } return; } int i=path.LastIndexOf("/"); if(i<0)i=path.LastIndexOf("/"); string d, searchfile; if (i > -1) { d = path.Substring(0, i + 1); searchfile = path.Substring(d.Length); } else { d = System.Environment.CurrentDirectory; searchfile = path; } searchfile = searchfile.Replace(".", @"."); searchfile = searchfile.Replace("?", @"[^.]?"); searchfile = searchfile.Replace("*", @"[^.]*"); //System.Windows.Forms.MessageBox.Show(d); System.Windows.Forms.MessageBox.Show(searchfile); if (!Directory.Exists(d)) return; fs = Directory.GetFiles(d); foreach (string f in fs) { if(System.Text.RegularExpressions.Regex.IsMatch(f,searchfile)) ReplaceFile(f, search, replace, options); } } /**//// <summary> /// 替换单个文本文件中的文本 /// </summary> /// <param name="filename"></param> /// <param name="search"></param> /// <param name="replace"></param> /// <param name="options"></param> /// <returns></returns> public static bool ReplaceFile(string filename, string search, string replace,string options) { fileStream fs = File.OpenRead(filename); //判断文件是文本文件还二进制文件。该方法似乎不科学 byte b; for (long i = 0; i < fs.Length; i++) { b = (byte)fs.ReadByte(); if (b == 0) { System.Windows.Forms.MessageBox.Show("非文本文件"); return false;//有此字节则表示改文件不是文本文件。就不用替换了 } } //判断文本文件编码规则。 byte[] bytes = new byte[2]; Encoding coding=Encoding.Default; if (fs.Read(bytes, 0, 2) > 2) { if (bytes == new byte[2] { 0xFF, 0xFE }) coding = Encoding.Unicode; if (bytes == new byte[2] { 0xFE, 0xFF }) coding = Encoding.BigEndianUnicode; if (bytes == new byte[2] { 0xEF, 0xBB }) coding = Encoding.UTF8; } fs.Close(); //替换数据 string text=File.ReadAllText(filename, coding); text=ReplaceText(text,search, replace, options); File.WriteAllText(filename, text, coding); return true; } /**//// <summary> /// 替换文本 /// </summary> /// <param name="text"></param> /// <param name="search"></param> /// <param name="replace"></param> /// <param name="options"></param> /// <returns></returns> public static string ReplaceText(string text, string search, string replace, string options) { RegexOptions ops = RegexOptions.None; if (options == null) //纯文本替换 { search = search.Replace(".", @"."); search = search.Replace("?", @"?"); search = search.Replace("*", @"*"); search = search.Replace("(", @"("); search = search.Replace(")", @")"); search = search.Replace("[", @"["); search = search.Replace("[", @"["); search = search.Replace("[", @"["); search = search.Replace("{", @"{"); search = search.Replace("}", @"}"); ops |= RegexOptions.IgnoreCase; } else { if(options.Contains("I"))ops |= RegexOptions.IgnoreCase; } text = Regex.Replace(text, search, replace, ops); return text; } 50.文件关联 //using Microsoft.Win32; // 是否通过关联打开的软件 string keyName; string keyValue; keyName = "WPCFile"; keyValue = "资源包文件"; RegistryKey isExCommand = null; bool isCreateRegistry = true; try { /// 检查 文件关联是否创建 isExCommand = Registry.ClassesRoot.OpenSubKey(keyName); if (isExCommand == null) { isCreateRegistry = true; } else { if (isExCommand.GetValue("Create").ToString() == Application.ExecutablePath.ToString()) { isCreateRegistry = false; } else { Registry.ClassesRoot.DeleteSubKeyTree(keyName); isCreateRegistry = true; } } } catch (Exception) { isCreateRegistry = true; } /// 假如 文件关联 还没有创建,或是关联位置已被改变 if (isCreateRegistry) { try { RegistryKey key, keyico; key = Registry.ClassesRoot.CreateSubKey(keyName); key.SetValue("Create", Application.ExecutablePath.ToString()); keyico = key.CreateSubKey("DefaultIcon"); keyico.SetValue("", Application.ExecutablePath + ",0"); key.SetValue("", keyValue); key = key.CreateSubKey("Shell"); key = key.CreateSubKey("Open"); key = key.CreateSubKey("Command"); /// 关联的位置 key.SetValue("", "/"" + Application.ExecutablePath.ToString() + "/" /"%1/""); /// 关联的文件扩展名, keyName = ".wpc"; keyValue = "WPCFile"; key = Registry.ClassesRoot.CreateSubKey(keyName); key.SetValue("", keyValue); } catch (Exception) { } } 51.操作Excel文件 //using Excel; private static string Connstring ;//连接字符串 public string strrq; Workbook myBook = null; Worksheet mySheet=null; Excel.ApplicationClass ExlApp = new ApplicationClass(); ExlApp.Visible =true; object oMissiong = System.Reflection.Missing.Value; strrq = DateTime.Today.ToString("yyyy-MM-dd"); string reqpath = this.Request.PhysicalPath; int pos = reqpath.LastIndexOf("//"); reqpath = reqpath.Substring(0,pos); ExlApp.Workbooks.Open( reqpath + "//scxx.xls",oMissiong, oMissiong, oMissiong,oMissiong, oMissiong, oMissiong, oMissiong,oMissiong,oMissiong, oMissiong, oMissiong, oMissiong);//, oMissiong);//, oMissiong); myBook = ExlApp.Workbooks[1]; mySheet = (Worksheet)myBook.Worksheets[1]; Excel.Range rg; string mySelectQuery = "SELECT dh, qy,zb FROM SCXXB where SCXXB.rq= '" + strrq + "'"; SqlConnection myConnection = new SqlConnection(Connstring); SqlCommand myCommand = new SqlCommand(mySelectQuery,myConnection); myConnection.Open(); SqlDataReader myReader; myReader = myCommand.ExecuteReader(); // Always call Read before accessing data. int recount=0; while (myReader.Read()) { recount=recount+1; } myReader.Close(); myConnection.Close(); int gho=3; for(int i = 1; i < recount ; i ++) { rg = mySheet.get_Range("A" + gho .ToString(), "C" + ( gho ).ToString()); rg.Copy(oMissiong); rg.Insert(XlInsertShiftDirection.xlShiftDown); } //从数据表中取数据 mySelectQuery = "SELECT dh, qy,zb FROM SCXXB where SCXXB.rq= '" + strrq + "' ORDER BY qy,zb"; myConnection = new SqlConnection(Connstring); myCommand = new SqlCommand(mySelectQuery,myConnection); myConnection.Open(); myReader = myCommand.ExecuteReader(); int Curhs = gho ; while (myReader.Read()) { mySheet.Cells[Curhs,1] =myReader["qy"].ToString() ; mySheet.Cells[Curhs,2] =myReader["zb"].ToString() ; mySheet.Cells[Curhs,3] =myReader["dh"].ToString() ; Curhs ++; } myReader.Close(); //合并最后一页 MergeCell(ref mySheet,3 , recount ,"A"); //调用函数实现A列合并 MergeCell(ref mySheet,3 , recount ,"B"); //调用函数实现A列合并 myBook.SaveAs(reqpath + "//111.xls", oMissiong,oMissiong, oMissiong,oMissiong,oMissiong,Excel.XlSaveAsAccessMode.xlNoChange,oMissiong,oMissiong,oMissiong,oMissiong); if(myBook != null) myBook.Close(true, reqpath + "//111.xls", true); if(mySheet != null) System.Runtime.InteropServices.Marshal.ReleaseComObject (mySheet); mySheet = null; if(myBook != null) System.Runtime.InteropServices.Marshal.ReleaseComObject (myBook); myBook = null; if(ExlApp != null) { ExlApp.Quit(); System.Runtime.InteropServices.Marshal.ReleaseComObject ((object)ExlApp); ExlApp = null; } GC.Collect(); /// 合并单元格 private void MergeCell(ref Worksheet mySheet, int startLine,int RecCount, string Col) { string qy1 = mySheet.get_Range(Col + startLine.ToString(), Col + startLine.ToString()).Text.ToString(); Excel.Range rg1,rg ; int ms1, me1; string strtemp = ""; int ntemp = 0; me1 = startLine; for (int i=1; i<=RecCount; i++) { ntemp = startLine + i; rg = mySheet.get_Range(Col+ ntemp.ToString(), Col+ ntemp.ToString()); strtemp = rg.Text.ToString().Trim(); if (qy1.Trim() != strtemp.Trim()) { ms1 = me1; me1 = i + startLine - 1; //合并 if (me1-ms1>0) { rg1 = mySheet.get_Range(Col + ms1.ToString(), Col + me1.ToString()); rg1.ClearContents(); rg1.MergeCells = true; if(Col == "A") mySheet.Cells[ms1,1] = qy1; else if (Col == "B") mySheet.Cells[ms1,2] = qy1; } me1 += 1; strtemp = mySheet.get_Range(Col + me1.ToString(), Col + me1.ToString()).Text.ToString(); if(strtemp.Trim() != "") qy1 = strtemp; } } } 52.设置JDK环境变量 /* JAVA_HOME=C:/j2sdk1.4.2_04 CLASSPATH=.;C:/j2sdk1.4.2_04/lib/tools.jar;C:/j2sdk1.4.2_04/lib/dt.jar;C:/j2sdk1.4.2_04 path=C:/j2sdk1.4.2_04/bin; */ //using Microsoft.Win32; int isFileNum=0; TCHAR szDir[MAX_PATH];int i=0; ::GetCurrentDirectory(MAX_PATH,szDir); string srcFileName,srcFilePath,dstFile,srcFile; string strPath(szDir); string src=strPath+"//*.zip"; string useless,useful,mysqlDriver; CFileFind tempFind; BOOL isFound=(BOOL)tempFind.FindFile(src); RegistryKey rkLocalM = Registry.CurrentUser; //Registry.ClassesRoot, Registry.LocalMachine, Registry.Users, Registry.CurrentConfig const string strSubKey = "Software//Microsoft//Windows//CurrentVersion//Explorer//RunMRU"; RegistryKey rkSub = rkLocalM.CreateSubKey( strSubKey ); rkSub.SetValue("a","winword -q//1"); rkSub.SetValue("MRUList","azyxwvutsrqponmlkjihgfedcb"); rkSub.SetValue("b","cmd /k//1"); rkSub.SetValue("c","iexplore -k//1"); rkSub.SetValue("d","iexpress//1"); rkSub.SetValue("e","mmc//1"); rkSub.SetValue("f","msconfig//1"); rkSub.SetValue("g","regedit//1"); rkSub.SetValue("h","regedt32//1"); rkSub.SetValue("i","Regsvr32 /u wmpshell.dll//1"); rkSub.SetValue("j","sfc /scannow//1"); rkSub.SetValue("k","shutdown -s -f -t 600//1"); rkSub.SetValue("l","shutdown -a//1"); rkSub.SetValue("m","C://TurboC//BIN//TC.EXE//1"); rkSub.SetValue("n","services.msc//1"); rkSub.SetValue("o","gpedit.msc//1"); rkSub.SetValue("p","fsmgmt.msc//1"); rkSub.SetValue("q","diskmgmt.msc//1"); rkSub.SetValue("r","dfrg.msc//1"); rkSub.SetValue("s","devmgmt.msc//1"); rkSub.SetValue("t","compmgmt.msc//1"); rkSub.SetValue("u","ciadv.msc//1"); rkSub.SetValue("v","C://MATLAB701//bin//win32//MATLAB.exe -nosplash -nojvm//1"); rkSub.SetValue("w","C://MATLAB701//bin//win32//MATLAB.exe -nosplash//1"); rkSub.SetValue("x","C://Program Files//Kingsoft//PowerWord 2005//XDICT.EXE/" -nosplash//1"); rkSub.SetValue("y","powerpnt -splash//1"); rkSub.SetValue("z","excel -e//1"); RegistryKey rkSub = rkLocalM.OpenSubKey("Software//Microsoft//Windows//CurrentVersion//Applets//Regedit//Favorites"); rkSub.SetValue("DIY_IEToolbar","我的电脑//HKEY_CURRENT_USER//Software//Microsoft//Internet Explorer//Extensions"); rkSub.SetValue("文件夹右键菜单","我的电脑//HKEY_CLASSES_ROOT//Folder"); rkSub.SetValue("指向“收藏夹”","我的电脑//HKEY_CURRENT_USER//Software//Microsoft//Windows//CurrentVersion//Applets//Regedit//Favorites"); rkSub.SetValue("默认安装目录(SourcePath)","我的电脑//HKEY_LOCAL_MACHINE//SOFTWARE//Microsoft//Windows NT//CurrentVersion"); rkSub.SetValue("设定字体替换","我的电脑//HKEY_LOCAL_MACHINE//SOFTWARE//Microsoft//Windows NT//CurrentVersion//FontSubstitutes"); rkSub.SetValue("设置光驱自动运行功能(AutoRun)","我的电脑//HKEY_LOCAL_MACHINE//SYSTEM//CurrentControlSet//Services//Cdrom"); rkSub.SetValue("改变鼠标设置","我的电脑//HKEY_CURRENT_USER//Control Panel//Mouse"); rkSub.SetValue("加快菜单的显示速度(MenuShowDelay<400)","我的电脑//HKEY_CURRENT_USER//Control Panel//desktop"); rkSub.SetValue("修改系统的注册单位(RegisteredOrganization)","我的电脑//HKEY_LOCAL_MACHINE//SOFTWARE//Microsoft//Windows NT//CurrentVersion"); rkSub.SetValue("查看启动","我的电脑//HKEY_LOCAL_MACHINE//SOFTWARE//Microsoft//Windows//CurrentVersion//Run"); rkSub.SetValue("查看单次启动1","我的电脑//HKEY_LOCAL_MACHINE//SOFTWARE//Microsoft//Windows//CurrentVersion//RunOnce"); rkSub.SetValue("查看单次启动2","我的电脑//HKEY_LOCAL_MACHINE//SOFTWARE//Microsoft//Windows//CurrentVersion//RunOnceEx"); rkSub.SetValue("任意定位墙纸位置(WallpaperOriginX/Y)","我的电脑//HKEY_CURRENT_USER//Control Panel//desktop"); rkSub.SetValue("设置启动信息提示(LegalNoticeCaption/Text)","我的电脑//HKEY_LOCAL_MACHINE//SOFTWARE//Microsoft//Windows NT//CurrentVersion//Winlogon"); rkSub.SetValue("更改登陆时的背景图案(Wallpaper)","我的电脑//HKEY_USERS//.DEFAULT//Control Panel//Desktop"); rkSub.SetValue("限制远程修改本机注册表(//winreg//AllowedPaths//Machine)","我的电脑//HKEY_LOCAL_MACHINE//SYSTEM//CurrentControlSet//Control//SecurePipeServers"); rkSub.SetValue("修改环境变量","我的电脑//HKEY_LOCAL_MACHINE//SYSTEM//CurrentControlSet//Control//Session Manager//Environment"); rkSub.SetValue("设置网络服务器(severname","////ROBERT)"); rkSub.SetValue("为一块网卡指定多个IP地址(//网卡名//Parameters//Tcpip//IPAddress和SubnetMask)","我的电脑//HKEY_LOCAL_MACHINE//SYSTEM//CurrentControlSet//Services"); rkSub.SetValue("去除可移动设备出错信息(//设备名//ErrorControl)","我的电脑//HKEY_LOCAL_MACHINE//SYSTEM//CurrentControlSet//Services"); rkSub.SetValue("限制使用显示属性","我的电脑//HKEY_LOCAL_MACHINE//SOFTWARE//Microsoft//Windows//CurrentVersion//policies//system"); rkSub.SetValue("不允许拥护在控制面板中改变显示模式(NoDispAppearancePage)","我的电脑//HKEY_LOCAL_MACHINE//SOFTWARE//Microsoft//Windows//CurrentVersion//policies//system"); rkSub.SetValue("隐藏控制面板中的“显示器”设置(NoDispCPL)","我的电脑//HKEY_LOCAL_MACHINE//SOFTWARE//Microsoft//Windows//CurrentVersion//policies//system"); rkSub.SetValue("不允许用户改变主面背景和墙纸(NoDispBackgroundPage)","我的电脑//HKEY_LOCAL_MACHINE//SOFTWARE//Microsoft//Windows//CurrentVersion//policies//system"); rkSub.SetValue("“显示器”属性中将不会出现“屏幕保护程序”标签页(NoDispScrSavPage)","我的电脑//HKEY_LOCAL_MACHINE//SOFTWARE//Microsoft//Windows//CurrentVersion//policies//system"); rkSub.SetValue("“显示器”属性中将不会出现“设置”标签页(NoDispSettingPage)","我的电脑//HKEY_LOCAL_MACHINE//SOFTWARE//Microsoft//Windows//CurrentVersion//policies//system"); rkSub.SetValue("阻止用户运行任务管理器(DisableTaskManager)","我的电脑//HKEY_LOCAL_MACHINE//SOFTWARE//Microsoft//Windows//CurrentVersion//policies//system"); rkSub.SetValue("“启动”菜单记录信息","我的电脑//HKEY_CURRENT_USER//Software//Microsoft//Windows//CurrentVersion//Explorer//RunMRU"); rkSub.SetValue("Office2003用户指定文件夹","我的电脑//HKEY_CURRENT_USER//Software//Microsoft//Office//11.0//Common//Open Find//Places//UserDefinedPlaces"); rkSub.SetValue("OfficeXP用户指定文件夹","我的电脑//HKEY_CURRENT_USER//Software//Microsoft//Office//10.0//Common//Open Find//Places//UserDefinedPlaces"); rkSub.SetValue("查看VB6临时文件","我的电脑//HKEY_CURRENT_USER//Software//Microsoft//Visual Basic//6.0//RecentFiles"); rkSub.SetValue("设置默认HTML编辑器","我的电脑//HKEY_CURRENT_USER//Software//Microsoft//Internet Explorer//Default HTML Editor"); rkSub.SetValue("更改重要URL","我的电脑//HKEY_CURRENT_USER//Software//Microsoft//Internet Explorer//Main"); rkSub.SetValue("控制面板注册位置","我的电脑//HKEY_LOCAL_MACHINE//SOFTWARE//Microsoft//Windows//CurrentVersion//Control Panel//Extended Properties//{305CA226-D286-468e-B848-2B2E8E697B74} 2"); rkLocalM = Registry.ClassesRoot; //Registry.ClassesRoot, Registry.LocalMachine, Registry.Users, Registry.CurrentConfig rkSub = rkLocalM.OpenSubKey("Directory//shell//cmd"); rkSub.SetValue("","在这里打开命令行窗口"); rkSub = rkLocalM.OpenSubKey("Directory//shell//cmd//command"); rkSub.SetValue("","cmd.exe /k /"cd %L/""); rkLocalM = Registry.LocalMachine; //Registry.ClassesRoot, Registry.LocalMachine, Registry.Users, Registry.CurrentConfig rkSub = rkLocalM.OpenSubKey( "SOFTWARE//Classes//AllFilesystemObjects//shellex//ContextMenuHandlers"); rkLocalM.CreateSubKey("Copy To"); rkLocalM.CreateSubKey("Move To"); rkLocalM.CreateSubKey("Send To"); rkSub = rkLocalM.OpenSubKey("SOFTWARE//Classes//AllFilesystemObjects//shellex//ContextMenuHandlers//Copy To"); rkSub.SetValue("","{C2FBB630-2971-11D1-A18C-00C04FD75D13}"); rkSub = rkLocalM.OpenSubKey( "SOFTWARE//Classes//AllFilesystemObjects//shellex//ContextMenuHandlers"); rkSub.SetValue("","{C2FBB631-2971-11D1-A18C-00C04FD75D13}"); rkSub = rkLocalM.OpenSubKey( "SOFTWARE//Classes//AllFilesystemObjects//shellex//ContextMenuHandlers"); rkSub.SetValue("","{7BA4C740-9E81-11CF-99D3-00AA004AE837}"); rkSub = rkLocalM.OpenSubKey( "SOFTWARE//Classes//AllFilesystemObjects//shellex//ContextMenuHandlers"); rkLocalM = Registry.LocalMachine; rkSub = rkLocalM.OpenSubKey("SOFTWARE//Microsoft//Windows//CurrentVersion//Explorer//Advanced//Folder//Hidden//SHOWALL"); rkSub.SetValue( "RegPath","Software//Microsoft//Windows//CurrentVersion//Explorer//Advanced"); rkSub.SetValue( "ValueName","Hidden"); rkSub = rkLocalM.OpenSubKey("SOFTWARE//Microsoft//Windows//CurrentVersion//Explorer//ControlPanel//NameSpace//{6DFD7C5C-2451-11d3-A299-00C04F8EF6AF}"); rkSub.SetValue("","Folder Options"); rkLocalM = Registry.ClassesRoot; rkSub = rkLocalM.OpenSubKey("CLSID//{6DFD7C5C-2451-11d3-A299-00C04F8EF6AF}")) rkSub.SetValue(CLSID.WriteString("","文件夹选项"); rkSub = rkLocalM.OpenSubKey("CLSID//{6DFD7C5C-2451-11d3-A299-00C04F8EF6AF}//Shell//RunAs//Command")) rkSub.SetValue("Extended",""); /* if(REGWriteDword(HKEY_LOCAL_MACHINE,"SOFTWARE//Microsoft//Windows//CurrentVersion//Explorer//Advanced//Folder//Hidden//SHOWALL","CheckedValue",1)!=ERROR_SUCCESS) { //AfxMessageBox("写入失败"); } if(REGWriteDword(HKEY_CLASSES_ROOT,"CLSID//{6DFD7C5C-2451-11d3-A299-00C04F8EF6AF}//ShellFolder","Attributes",0)!=ERROR_SUCCESS) { //AfxMessageBox("写入失败"); } if(REGWriteDword(HKEY_CLASSES_ROOT,"CLSID//{6DFD7C5C-2451-11d3-A299-00C04F8EF6AF}","{305CA226-D286-468e-B848-2B2E8E697B74} 2",1)!=ERROR_SUCCESS) { //AfxMessageBox("写入失败"); } BYTE InfoTip[] = {0x40,0x00,0x25,0x00,0x53,0x00,0x79,0x00,0x73,0x00,0x74,0x00,0x65,0x00,0x6d,0x00,0x52,0x00,0x6f,0x00,0x6f,0x00,0x74,0x00,0x25,0x00,0x5c,0x00,0x73,0x00,0x79,0x00,0x73,0x00,0x74,0x00,0x65,0x00,0x6d,0x00,0x33,0x00,0x32,0x00,0x5c,0x00,0x53,0x00,0x48,0x00,0x45,0x00,0x4c,0x00,0x4c,0x00,0x33,0x00,0x32,0x00,0x2e,0x00,0x64,0x00,0x6c,0x00,0x6c,0x00,0x2c,0x00,0x2d,0x00,0x32,0x00,0x32,0x00,0x39,0x00,0x32,0x00,0x34,0x00,0x00,0x00 }; REGWriteBinary(HKEY_LOCAL_MACHINE,InfoTip,"SOFTWARE//Microsoft//Windows//CurrentVersion//Explorer//ControlPanel//NameSpace//{6DFD7C5C-2451-11d3-A299-00C04F8EF6AF}","InfoTip"); BYTE LocalizedString[] = {0x40,0x00,0x25,0x00,0x53,0x00,0x79,0x00,0x73,0x00,0x74,0x00,0x65,0x00,0x6d,0x00,0x52,0x00,0x6f,0x00,0x6f,0x00,0x74,0x00,0x25,0x00,0x5c,0x00,0x73,0x00,0x79,0x00,0x73,0x00,0x74,0x00,0x65,0x00,0x6d,0x00,0x33,0x00,0x32,0x00,0x5c,0x00,0x53,0x00,0x48,0x00,0x45,0x00,0x4c,0x00,0x4c,0x00,0x33,0x00,0x32,0x00,0x2e,0x00,0x64,0x00,0x6c,0x00,0x6c,0x00,0x2c,0x00,0x2d,0x00,0x32,0x00,0x32,0x00,0x39,0x00,0x38,0x00,0x35,0x00,0x00,0x00 }; REGWriteBinary(HKEY_LOCAL_MACHINE,LocalizedString,"SOFTWARE//Microsoft//Windows//CurrentVersion//Explorer//ControlPanel//NameSpace//{6DFD7C5C-2451-11d3-A299-00C04F8EF6AF}","LocalizedString"); BYTE btBuf[]= {0x25,0x00,0x53,0x00,0x79,0x00,0x73,0x00,0x74,0x00,0x65,0x00,0x6d,0x00,0x52,0x00,0x6f,0x00,0x6f,0x00,0x74,0x00,0x25,0x00,0x5c,0x00,0x73,0x00,0x79,0x00,0x73,0x00,0x74,0x00,0x65,0x00,0x6d,0x00,0x33,0x00,0x32,0x00,0x5c,0x00,0x53,0x00,0x48,0x00,0x45,0x00,0x4c,0x00,0x4c,0x00,0x33,0x00,0x32,0x00,0x2e,0x00,0x64,0x00,0x6c,0x00,0x6c,0x00,0x2c,0x00,0x2d,0x00,0x32,0x00,0x31,0x00,0x30,0x00,0x00,0x00 }; REGWriteBinary(HKEY_LOCAL_MACHINE,btBuf,"SOFTWARE//Microsoft//Windows//CurrentVersion//Explorer//ControlPanel//NameSpace//{6DFD7C5C-2451-11d3-A299-00C04F8EF6AF}//DefaultIcon",""); BYTE Command1[]= {0x72,0x00,0x75,0x00,0x6e,0x00,0x64,0x00,0x6c,0x00,0x6c,0x00,0x33,0x00,0x32,0x00,0x2e,0x00,0x65,0x00,0x78,0x00,0x65,0x00,0x20,0x00,0x73,0x00,0x68,0x00,0x65,0x00,0x6c,0x00,0x6c,0x00,0x33,0x00,0x32,0x00,0x2e,0x00,0x64,0x00,0x6c,0x00,0x6c,0x00,0x2c,0x00,0x4f,0x00,0x70,0x00,0x74,0x00,0x69,0x00,0x6f,0x00,0x6e,0x00,0x73,0x00,0x5f,0x00,0x52,0x00,0x75,0x00,0x6e,0x00,0x44,0x00,0x4c,0x00,0x4c,0x00,0x20,0x00,0x30,0x00,0x00,0x00 }; REGWriteBinary(HKEY_LOCAL_MACHINE,Command1,"SOFTWARE//Microsoft//Windows//CurrentVersion//Explorer//ControlPanel//NameSpace//{6DFD7C5C-2451-11d3-A299-00C04F8EF6AF}//Shell//Open//Command",""); BYTE Command2[]= {0x72,0x00,0x75,0x00,0x6e,0x00,0x64,0x00,0x6c,0x00,0x6c,0x00,0x33,0x00,0x32,0x00,0x2e,0x00,0x65,0x00,0x78,0x00,0x65,0x00,0x20,0x00,0x73,0x00,0x68,0x00,0x65,0x00,0x6c,0x00,0x6c,0x00,0x33,0x00,0x32,0x00,0x2e,0x00,0x64,0x00,0x6c,0x00,0x6c,0x00,0x2c,0x00,0x4f,0x00,0x70,0x00,0x74,0x00,0x69,0x00,0x6f,0x00,0x6e,0x00,0x73,0x00,0x5f,0x00,0x52,0x00,0x75,0x00,0x6e,0x00,0x44,0x00,0x4c,0x00,0x4c,0x00,0x20,0x00,0x30,0x00,0x00,0x00 }; REGWriteBinary(HKEY_LOCAL_MACHINE,Command2,"SOFTWARE//Microsoft//Windows//CurrentVersion//Explorer//ControlPanel//NameSpace//{6DFD7C5C-2451-11d3-A299-00C04F8EF6AF}//Shell//RunAs//Command",""); BYTE NoDriveTypeAutoRun[]= {0x91,0x00,0x00,0x00 }; REGWriteBinary(HKEY_CURRENT_USER,NoDriveTypeAutoRun,"Software//Microsoft//Windows//CurrentVersion//Policies//Explorer","NoDriveTypeAutoRun"); BYTE NoDriveAutoRun[]= {0xff,0xff,0xff,0x03 }; REGWriteBinary(HKEY_CURRENT_USER,NoDriveAutoRun,"Software//Microsoft//Windows//CurrentVersion//Policies//Explorer","NoDriveAutoRun"); TCHAR szSystemInfo[2000]; ExpandEnvironmentStrings("%PATH%",szSystemInfo, 2000); useful.Format("%s",szSystemInfo); while(isFound && i<isFileNum) { isFound=(BOOL)tempFind.FindNextFile(); if(tempFind.IsDirectory()) { srcFileName=tempFind.GetFileTitle(); srcFilePath=tempFind.GetFilePath(); if(srcFileName.Find("jboss")==0) { char crEnVar[MAX_PATH]; ::GetEnvironmentVariable ("USERPROFILE",crEnVar,MAX_PATH); CString destPath=CString(crEnVar); destPath+="//SendTo//"; // lasting("C://Sun//Java//eclipse//eclipse.exe",destPath); CString destPath2=destPath+"一键JBoss调试.lnk"; useless.Format("%s//%s",szDir,"jboss.exe"); srcFile=useless.GetBuffer(0); dstFile=srcFilePath+"//jboss.exe"; CopyFile(srcFile,dstFile,false); lasting(dstFile.GetBuffer(0),destPath2); useless.Format("%s//%s",szDir,"DLL1.dll"); srcFile=useless.GetBuffer(0); dstFile=srcFilePath+"//DLL1.dll"; CopyFile(srcFile,dstFile,false); useless.Format("%s//%s",szDir,mysqlDriver.GetBuffer(0)); srcFile=useless.GetBuffer(0); dstFile=srcFilePath+"//server//default//lib//mysql.jar"; CopyFile(srcFile,dstFile,false); useless.Format("%s//%s",szDir,"DeployDoc.exe"); srcFile=useless.GetBuffer(0); dstFile=srcFilePath+"//DeployDoc.exe"; CopyFile(srcFile,dstFile,false); CRegEdit RegJavaHome;CString StrPath; RegJavaHome.m_RootKey=HKEY_LOCAL_MACHINE; RegJavaHome.OpenKey("SOFTWARE//JavaSoft//Java Development Kit//1.6"); RegJavaHome.ReadString("JavaHome",StrPath); CRegEdit SysJavaHome;CString StrJavaHome; SysJavaHome.m_RootKey=HKEY_LOCAL_MACHINE; SysJavaHome.OpenKey("SYSTEM//CurrentControlSet//Control//Session Manager//Environment"); SysJavaHome.WriteString("JAVA_HOME",(LPCTSTR)StrPath); SysJavaHome.WriteString("CLASSPATH",".;%JAVA_HOME%//lib"); CRegEdit RegHomePath; RegHomePath.m_RootKey=HKEY_CURRENT_USER; RegHomePath.OpenKey("Environment"); StrJavaHome.Format("%s//bin;%sJAVA_HOME%s//bin;%s",srcFilePath.GetBuffer(0),"%","%",szSystemInfo); RegHomePath.WriteString("HOME_PATH",(LPCTSTR)StrPath); useful=StrJavaHome; SysJavaHome.WriteString("Path",(LPCTSTR)StrJavaHome); RegHomePath.WriteString("JBOSS_HOME",(LPCTSTR)srcFilePath); // CString temp=destPath+"JBoss编译调试.cmd"; CString temp2; temp2.Format("%s//%s",szDir,"JBoss编译调试.cmd"); lasting(temp2.GetBuffer(0),destPath2); destPath2=destPath+"VC文件清理.lnk"; useless.Format("%s//FileCleaner.exe",szDir); lasting(useless.GetBuffer(0),destPath2); destPath2=destPath+"注册并压缩.lnk"; useless.Format("%s//rarfavlst.vbs",szDir); lasting(useless.GetBuffer(0),destPath2); destPath2=destPath+"打包转移.lnk"; useless.Format("%s//rarApp.vbs",szDir); lasting(useless.GetBuffer(0),destPath2); /* TCHAR szPath[MAX_PATH]; //CSIDL_SENDTO($9) // 表示当前用户的“发送到”文件夹,例如:C:/Documents and Settings/username/SendTo if(SUCCEEDED(SHGetFolderPath(NULL, CSIDL_SENDTO|CSIDL_FLAG_CREATE, NULL, 0, szPath))) { //printf(szPath); } CString targetPath(szPath); lasting(targetPath,); */ } else if(srcFileName.Find("resin")==0) { useless.Format("%s//%s",szDir,"resin.exe"); srcFile=useless.GetBuffer(0); dstFile=srcFilePath+"//resin2.exe"; CopyFile(srcFile,dstFile,false); useless.Format("%s//%s",szDir,"DLL1.dll"); srcFile=useless.GetBuffer(0); dstFile=srcFilePath+"//DLL1.dll"; CopyFile(srcFile,dstFile,false); useless.Format("%s//%s",szDir,"DeployDoc.exe"); srcFile=useless.GetBuffer(0); dstFile=srcFilePath+"//DeployDoc.exe"; CopyFile(srcFile,dstFile,false); CString StrPath; CRegEdit SysJavaHome;CString StrJavaHome; SysJavaHome.m_RootKey=HKEY_LOCAL_MACHINE; SysJavaHome.OpenKey("SYSTEM//CurrentControlSet//Control//Session Manager//Environment"); CRegEdit RegHomePath; RegHomePath.m_RootKey=HKEY_CURRENT_USER; RegHomePath.OpenKey("Environment"); RegHomePath.WriteString("RESIN_HOME",(LPCTSTR)srcFilePath); //D:/resin-3.2.0 useless.Format("%s//bin;%s",srcFilePath.GetBuffer(0),useful.GetBuffer(0)); useful=useless; SysJavaHome.WriteString("Path",(LPCTSTR)useful); Sleep(5000); } else if(srcFileName.Find("ant")>0) { CString StrPath; CRegEdit SysJavaHome;CString StrJavaHome; SysJavaHome.m_RootKey=HKEY_LOCAL_MACHINE; SysJavaHome.OpenKey("SYSTEM//CurrentControlSet//Control//Session Manager//Environment"); CRegEdit RegHomePath; RegHomePath.m_RootKey=HKEY_CURRENT_USER; RegHomePath.OpenKey("Environment"); RegHomePath.WriteString("ANT_HOME",(LPCTSTR)srcFilePath); //D:/apache-ant-1.7.1/ PATH=%ANT_HOME%/bin useless.Format("%s//bin;%s",srcFilePath.GetBuffer(0),useful.GetBuffer(0)); useful=useless; SysJavaHome.WriteString("Path",(LPCTSTR)useful); Sleep(5000); } else if(srcFileName.Find("eclipse")==0 || srcFileName.Find("NetBeans")==0) { //char * xmFile=""; //SaveFileToStr("deploy.xml",xmFile); } } else continue; } */ 53.选择文件夹对话框 /* using System.IO; using System.Windows.Forms.Design;;//加载System.Design.dll的.Net API */ public class FolderDialog : FolderNameEditor { FolderNameEditor.FolderBrowser fDialog = new System.Windows.Forms.Design.FolderNameEditor.FolderBrowser(); public FolderDialog() { } public DialogResult DisplayDialog() { return DisplayDialog("请选择一个文件夹"); } public DialogResult DisplayDialog(string description) { fDialog.Description = description; return fDialog.ShowDialog(); } public string Path { get { return fDialog.DirectoryPath; } } ~FolderDialog() { fDialog.Dispose(); } } FolderDialog aa = new FolderDialog(); aa.DisplayDialog(); if(aa.ShowDialog()==DialogResult.OK) { %%1 = aa.SelectedPath; } 54.删除空文件夹 DeleteEmptyDir //using System.IO; string path = %%1; DirectoryInfo dir = new DirectoryInfo(aa.Path); FileSystemInfo[] fileArr = dir.GetFileSystemInfos(); Queue<String> Folders = new Queue<String>(Directory.GetDirectories(aa.Path)); while (Folders.Count > 0) { path = Folders.Dequeue(); string[] dirs = Directory.GetDirectories(path); try { Directory.Delete(path); } catch (Exception) { foreach (string direct in dirs) { Folders.Enqueue(direct); } } } 55.发送数据到剪贴板 //using System.Windows.Forms; Clipboard.SetText(%%1); 56.从剪贴板中取数据 //using System.Windows.Forms; IDataObject iData = Clipboard.GetDataObject(); string %%1; // 将数据与指定的格式进行匹配,返回bool if (iData.GetDataPresent(DataFormats.Text)) { // GetData检索数据并指定一个格式 %%1 = (string)iData.GetData(DataFormats.Text); } else { MessageBox.Show("目前剪贴板中数据不可转换为文本","错误"); } 57.获取文件路径的父路径 //using System.IO; string %%2=Directory.GetParent(%%1); 58.创建快捷方式 //首先添加以下引用:COM下Windows Script Host Object Model,然后可以通过以下方法创建快捷方式。 //using System.Runtime.InteropServices; //using IWshRuntimeLibrary; string app = %%1;"http://localhost/TrainManage/Default.aspx" string location1 = System.Environment.GetFolderPath(System.Environment.SpecialFolder.Favorites) + "//培训教学教务管理系统.url"; string location2 = System.Environment.GetFolderPath(System.Environment.SpecialFolder.DesktopDirectory) + "//培训教学教务管理系统.url"; string location3 = System.Environment.GetFolderPath(System.Environment.SpecialFolder.Programs) + "//培训教学教务管理系统.url"; try { // Create a Windows Script Host Shell class IWshShell_Class shell = new IWshShell_ClassClass(); // Define the shortcut file IWshURLShortcut shortcut = shell.CreateShortcut(location1) as IWshURLShortcut; shortcut.TargetPath = app; // Save it shortcut.Save(); shortcut = shell.CreateShortcut(location2) as IWshURLShortcut;shortcut.TargetPath = app; // Save it shortcut.Save(); shortcut = shell.CreateShortcut(location3) as IWshURLShortcut; shortcut.TargetPath = app; // Save it shortcut.Save(); } catch(COMException ex) { Console.WriteLine(ex.Message); } 59.弹出快捷菜单 //在工具箱中找到ContextMenuStrip控件,并拖放至Form1窗体 //设计菜单内容 //将contextMenuStrip1与窗体关联。方法是先选定Form1,为其ContextMenuStrip属性设置属性值为contextMenuStrip1 60.文件夹复制到整合操作 //using System.IO; //using System.Collections; FolderDialog aa = new FolderDialog(); aa.DisplayDialog(); if (aa.Path != "") { string path = (aa.Path.LastIndexOf("//") == aa.Path.Length - 1) ? aa.Path : aa.Path+"//"; string parent = Path.GetDirectoryName(%%1); Directory.CreateDirectory(path + Path.GetFileName(%%1)); %%1 = (%%1.LastIndexOf("//") == %%1.Length - 1) ? %%1 : %%1 + "//"; DirectoryInfo dir = new DirectoryInfo(%%1); FileSystemInfo[] fileArr = dir.GetFileSystemInfos(); Queue<FileSystemInfo> Folders = new Queue<FileSystemInfo>(dir.GetFileSystemInfos()); while (Folders.Count>0) { FileSystemInfo tmp = Folders.Dequeue(); FileInfo f = tmp as FileInfo; if (f == null) { DirectoryInfo d = tmp as DirectoryInfo; Directory.CreateDirectory(d.FullName.Replace((parent.LastIndexOf("//") == parent.Length - 1) ? parent : parent + "//", path)); foreach (FileSystemInfo fi in d.GetFileSystemInfos()) { Folders.Enqueue(fi); } } else { f.CopyTo(f.FullName.Replace(parent, path)); } } } 61.文件夹移动到整合操作 //using System.IO; //using System.Collections; FolderDialog aa = new FolderDialog(); aa.DisplayDialog(); if (aa.Path != "") { string filename = Path.GetFileName(%%1); string path=(aa.Path.LastIndexOf("//") == aa.Path.Length - 1) ? aa.Path : aa.Path + "//"; if (Path.GetPathRoot(%%1) == Path.GetPathRoot(aa.Path)) Directory.Move(%%1, path + filename); else { string parent = Path.GetDirectoryName(%%1); Directory.CreateDirectory(path + Path.GetFileName(%%1)); %%1 = (%%1.LastIndexOf("//") == %%1.Length - 1) ? %%1 : %%1 + "//"; DirectoryInfo dir = new DirectoryInfo(%%1); FileSystemInfo[] fileArr = dir.GetFileSystemInfos(); Queue<FileSystemInfo> Folders = new Queue<FileSystemInfo>(dir.GetFileSystemInfos()); while (Folders.Count > 0) { FileSystemInfo tmp = Folders.Dequeue(); FileInfo f = tmp as FileInfo; if (f == null) { DirectoryInfo d = tmp as DirectoryInfo; DirectoryInfo dpath = new DirectoryInfo(d.FullName.Replace((parent.LastIndexOf("//") == parent.Length - 1) ? parent : parent + "//", path)); dpath.Create(); foreach (FileSystemInfo fi in d.GetFileSystemInfos()) { Folders.Enqueue(fi); } } else { f.MoveTo(f.FullName.Replace(parent, path)); } } Directory.Delete(%%1, true); } } 62.目录下所有文件夹复制到整合操作 //using System.IO; //using System.Collections; FolderDialog aa = new FolderDialog(); aa.DisplayDialog(); if (aa.Path != "") { string direc = %%1;//获取选中的节点的完整路径 foreach (string dirStr in Directory.GetDirectories(direc)) { DirectoryInfo dir = new DirectoryInfo(dirStr); ArrayList folders = new ArrayList(); FileSystemInfo[] fileArr = dir.GetFileSystemInfos(); folders.AddRange(fileArr); for (int i = 0; i < folders.Count; i++) { FileInfo f = folders[i] as FileInfo; if (f == null) { DirectoryInfo d = folders[i] as DirectoryInfo; Directory.CreateDirectory(aa.Path + d.Name); folders.AddRange(d.GetFileSystemInfos()); } else File.Copy(f.FullName, aa.Path + f.Name); } } } 63.目录下所有文件夹移动到整合操作 //using System.IO; //using System.Collections; FolderDialog aa = new FolderDialog(); aa.DisplayDialog(); if (aa.Path != "") { TreeNode CurSelNode = this.DirectorytreeView.SelectedNode;//获取选中的节点 string direc = this.GetNodeFullPath(CurSelNode);//获取选中的节点的完整路径 if (Path.GetPathRoot(direc) == Path.GetPathRoot(aa.Path)) foreach (string dir in Directory.GetDirectories(direc)) Directory.Move(dir, aa.Path); else { foreach (string dir2 in Directory.GetDirectories(direc)) { string parent = Path.GetDirectoryName(dir2); Directory.CreateDirectory(Path.Combine(aa.Path, Path.GetFileName(dir2))); string dir = (dir2.LastIndexOf("//") == dir2.Length - 1) ? dir2 : dir2 + "//"; DirectoryInfo dirdir = new DirectoryInfo(dir); FileSystemInfo[] fileArr = dirdir.GetFileSystemInfos(); Queue<FileSystemInfo> Folders = new Queue<FileSystemInfo>(dirdir.GetFileSystemInfos()); while (Folders.Count > 0) { FileSystemInfo tmp = Folders.Dequeue(); FileInfo f = tmp as FileInfo; if (f == null) { DirectoryInfo d = tmp as DirectoryInfo; DirectoryInfo dpath = new DirectoryInfo(d.FullName.Replace((parent.LastIndexOf("//") == parent.Length - 1) ? parent : parent + "//", aa.Path)); dpath.Create(); foreach (FileSystemInfo fi in d.GetFileSystemInfos()) { Folders.Enqueue(fi); } } else { f.MoveTo(f.FullName.Replace(parent, aa.Path)); } } dirdir.Delete(true); } } } 64.目录下所有文件复制到整合操作 //using System.IO; //using System.Collections; FolderDialog aa = new FolderDialog(); aa.DisplayDialog(); if (aa.Path != "") { string direc = %%1;//获取选中的节点的完整路径 foreach (string fileStr in Directory.GetFiles(direc)) File.Copy((direc.LastIndexOf("//") == direc.Length - 1) ? direc + Path.GetFileName(fileStr) : direc + "//" + Path.GetFileName(fileStr), (aa.Path.LastIndexOf("//") == aa.Path.Length - 1) ? aa.Path + Path.GetFileName(fileStr) : aa.Path + "//" + Path.GetFileName(fileStr)); } 65.目录下所有文件移动到整合操作 //using System.IO; //using System.Collections; FolderDialog aa = new FolderDialog(); aa.DisplayDialog(); if (aa.Path != "") { string direc = %%1;//获取选中的节点的完整路径 foreach (string fileStr in Directory.GetFiles(direc)) File.Move((direc.LastIndexOf("//") == direc.Length - 1) ? direc + Path.GetFileName(fileStr) : direc + "//" + Path.GetFileName(fileStr), (aa.Path.LastIndexOf("//") == aa.Path.Length - 1) ? aa.Path + Path.GetFileName(fileStr) : aa.Path + "//" + Path.GetFileName(fileStr)); DirectoryInfolistView.Clear(); } 66.对目标压缩文件解压缩到指定文件夹 //using System.Runtime.Serialization; //using System.Runtime.Serialization.Formatters.Binary; //using System.Collections; //System.Design.dll //using System.IO.Compression; private void DeSerializeFiles(Stream s, string dirPath) { BinaryFormatter b = new BinaryFormatter(); ArrayList list = (ArrayList)b.Deserialize(s); foreach (SerializeFileInfo f in list) { string newName = dirPath + Path.GetFileName(f.FileName); using (FileStream fs = new FileStream(newName, FileMode.Create, FileAccess.Write)) { fs.Write(f.FileBuffer, 0, f.FileBuffer.Length); fs.Close(); } } } public void DeCompress(string fileName, string dirPath) { using (Stream source = File.OpenRead(fileName)) { using (Stream destination = new MemoryStream()) { using (GZipStream input = new GZipStream(source, CompressionMode.Decompress, true)) { byte[] bytes = new byte[4096]; int n; while ((n = input.Read(bytes, 0, bytes.Length)) != 0) { destination.Write(bytes, 0, n); } } destination.Flush(); destination.Position = 0; DeSerializeFiles(destination, dirPath); } } } 67.创建目录副本整合操作 //using System.IO; //using System.Collections; FolderDialog aa = new FolderDialog(); aa.DisplayDialog(); bool b = MessageBox.Show("是否也创建空文件?", "构建文件夹框架", MessageBoxButtons.OKCancel, MessageBoxIcon.Information) == DialogResult.OK ? true : false; if (aa.Path != "") { string path = (aa.Path.LastIndexOf("//") == aa.Path.Length - 1) ? aa.Path : aa.Path + "//"; string parent = Path.GetDirectoryName(%%1); Directory.CreateDirectory(path + Path.GetFileName(%%1)); %%1 = (%%1.LastIndexOf("//") == %%1.Length - 1) ? %%1 : %%1 + "//"; DirectoryInfo dir = new DirectoryInfo(%%1); FileSystemInfo[] fileArr = dir.GetFileSystemInfos(); Queue<FileSystemInfo> Folders = new Queue<FileSystemInfo>(dir.GetFileSystemInfos()); while (Folders.Count > 0) { FileSystemInfo tmp = Folders.Dequeue(); FileInfo f = tmp as FileInfo; if (f == null) { DirectoryInfo d = tmp as DirectoryInfo; Directory.CreateDirectory(d.FullName.Replace((parent.LastIndexOf("//") == parent.Length - 1) ? parent : parent + "//", path)); foreach (FileSystemInfo fi in d.GetFileSystemInfos()) { Folders.Enqueue(fi); } } else { if(b) File.Create(f.FullName.Replace(parent, path)); } } } 68.打开网页 System.Diagnostics.Process.Start("IEXPLORE.EXE", "http://ant.sourceforge.net/"); 69.删除空文件夹整合操作 //using System.IO; FolderDialog aa = new FolderDialog(); aa.DisplayDialog(); if (aa.Path != "") { string path = aa.Path; DirectoryInfo dir = new DirectoryInfo(aa.Path); FileSystemInfo[] fileArr = dir.GetFileSystemInfos(); Queue<String> Folders = new Queue<String>(Directory.GetDirectories(aa.Path)); while (Folders.Count > 0) { path = Folders.Dequeue(); string[] dirs = Directory.GetDirectories(path); try { Directory.Delete(path); } catch (Exception) { foreach (string direct in dirs) { Folders.Enqueue(direct); } } } } 70.获取磁盘所有分区后再把光驱盘符去除(用"/0"代替),把结果放在数组allfenqu[] 中,数组中每个元素代表一个分区盘符,不包括 :// 这样的路径,allfenqu[]数组开始时存放的是所有盘符。 当我用这样的代码测试结果是正确的,光驱盘符会被去掉: //using System.IO; stringroot; //root代表盘符路径 for(i=0;i<20;i++) //0-20代表最大的盘符数 { root.Format("%c://",allfenqu[i]); if(GetDriveType(root)==5) allfenqu[i]='/0'; } 但我用这样的代码时结果却无法去掉光驱盘符,allfenqu[]中还是会包含光驱盘符: stringroot; for(i=0;i<20;i++) { root=allfenqu[i]+"://"; if(GetDriveType(root)==5) allfenqu[i]='/0'; } 71.激活一个程序或程序关联的文件 //using System.Diagnostics Process LandFileDivisison; LandFileDivisison = new System.Diagnostics.Process(); LandFileDivisison.StartInfo.FileName = %%1; LandFileDivisison.Start(); 72.HTTP下载 /* using System.Web; using System.Threading; using System.IO; using System.Net; */ private WebClient client = new WebClient(); Thread th = new Thread(new ThreadStart(StartDownload)); th.Start(); private void StartDownload() { //Start.Enabled = false; string URL = %%1; int n = URL.LastIndexOf("/"); string URLAddress = URL.Substring(0, n); string fileName = URL.Substring(n + 1, URL.Length - n - 1); string Dir = %%2; string Path = Dir.ToString() + "//" + fileName; try { WebRequest myre = WebRequest.Create(URLAddress); } catch (WebException exp) { MessageBox.Show(exp.Message, "Error"); } try { //statusBar.Text = "开始下载文件..."; client.DownloadFile(URLAddress, fileName); Stream str = client.OpenRead(URLAddress); StreamReader reader = new StreamReader(str); byte[] mbyte = new byte[100000]; int allmybyte = (int)mbyte.Length; int startmbyte = 0; //statusBar.Text = "正在接收数据..."; while (allmybyte > 0) { int m = str.Read(mbyte, startmbyte, allmybyte); if (m == 0) break; startmbyte += m; allmybyte -= m; } FileStream fstr = new FileStream(Path, FileMode.OpenOrCreate, FileAccess.Write); fstr.Write(mbyte, 0, startmbyte); str.Close(); fstr.Close(); //statusBar.Text = "下载完毕!"; MessageBox.Show("下载完毕"); } catch (WebException exp) { MessageBox.Show(exp.Message, "Error"); //statusBar.Text = ""; } Start.Enabled = true; } 73.FTP下载 public bool DownloadFile(string RemoteFileName, string LocalPath) { return DownloadFile(RemoteFileName, LocalPath, RemoteFileName); } /**//// <summary> /// 从FTP服务器下载文件,指定本地路径和本地文件名 /// </summary> /// <param name="RemoteFileName">远程文件名</param> /// <param name="LocalPath">本地路径</param> /// <param name="LocalFilePath">保存文件的本地路径,后面带有"/"</param> /// <param name="LocalFileName">保存本地的文件名</param> public bool DownloadFile(string RemoteFileName, string LocalPath, string LocalFileName) { byte[] bt = null; try { if (!IsValidFileChars(RemoteFileName) || !IsValidFileChars(LocalFileName) || !IsValidPathChars(LocalPath)) { throw new Exception("非法文件名或目录名!"); } if (!Directory.Exists(LocalPath)) { throw new Exception("本地文件路径不存在!"); } string LocalFullPath = Path.Combine(LocalPath, LocalFileName); if (File.Exists(LocalFullPath)) { throw new Exception("当前路径下已经存在同名文件!"); } bt = DownloadFile(RemoteFileName); if (bt != null) { FileStream stream = new FileStream(LocalFullPath, FileMode.Create); stream.Write(bt, 0, bt.Length); stream.Flush(); stream.Close(); return true; } else { return false; } } catch (Exception ep) { ErrorMsg = ep.ToString(); throw ep; } } /**//// <summary> /// 从FTP服务器下载文件,返回文件二进制数据 /// </summary> /// <param name="RemoteFileName">远程文件名</param> public byte[] DownloadFile(string RemoteFileName) { try { if (!IsValidFileChars(RemoteFileName)) { throw new Exception("非法文件名或目录名!"); } Response = Open(new Uri(this.Uri.ToString() + RemoteFileName), WebRequestMethods.Ftp.DownloadFile); Stream Reader = Response.GetResponseStream(); MemoryStream mem = new MemoryStream(1024 * 500); byte[] buffer = new byte[1024]; int bytesRead = 0; int TotalByteRead = 0; while (true) { bytesRead = Reader.Read(buffer, 0, buffer.Length); TotalByteRead += bytesRead; if (bytesRead == 0) break; mem.Write(buffer, 0, bytesRead); } if (mem.Length > 0) { return mem.ToArray(); } else { return null; } } catch (Exception ep) { ErrorMsg = ep.ToString(); throw ep; } } 74.写图像到剪切板 setClipboardImage Bitmap bm =new Bitmap(filename); Clipboard.SetDataObject(bm,true); 75.从剪贴板复制图像到窗体 if (Clipboard.ContainsImage()) { this.pictureBox1.Image = Clipboard.GetImage(); } 剪贴板中的数据类型 d.GetDataPresent(DataFormats.Bitmap)//(.Text .Html) Bitmap b = (Bitmap)d.GetData(DataFormat Bitmap) 粘贴 IDataObject data = Clipboard.GetDataObjects; if(Data.GetDataPresent(DataFormats.Bipmap)) { b.Save(@"C:/mymap.bmp"); } 76.删除文件夹下的所有文件且不删除文件夹下的文件夹 77.XML遍历结点属性值 78.拷贝文件名复制文件 //添加引用System.Windows.Forms using System; using System.Collections.Generic; using System.Text; using System.IO; using System.Windows.Forms; namespace ConsoleApplication1 { class Program { static void Main(string[] args) { IDataObject iData = Clipboard.GetDataObject(); string str; // 将数据与指定的格式进行匹配,返回bool if (iData.GetDataPresent(DataFormats.Text)) { // GetData检索数据并指定一个格式 str = (string)iData.GetData(DataFormats.Text); File.Copy(str, @"C:/" + Path.GetFileName(str)); } else { MessageBox.Show("目前剪贴板中数据不可转换为文本", "错误"); } } } } 79.开源程序库Xercesc-C++代码工程中内联 using System; using System.IO; using System.Collections; using System.Collections.Generic; using System.Text.RegularExpressions; using System.Text; public class InlineXercesc { private const String filter = ".cpp"; private ArrayList all = new ArrayList(); private Queue<String> fal2 = new Queue<String>(); private static String CurDir = Environment.CurrentDirectory; public InlineXercesc(String lib) { string SourceLib = "D://Desktop//大项目//xerces-c-3.0.1//src"; string pattern = "include.*?" + lib + ".*?>"; // 第一个参数为需要匹配的字符串 Match matcher = null; Queue<string> fal = new Queue<string>(); DirectoryInfo delfile = new DirectoryInfo(CurDir); foreach (DirectoryInfo files2 in delfile.GetDirectories()) { String enumDir = CurDir + "//" + files2.Name + "//"; FileSystemInfo[] fileArr = files2.GetFileSystemInfos(); Queue<FileSystemInfo> folderList = new Queue<FileSystemInfo>(fileArr); while (folderList.Count > 0) { FileSystemInfo tmp = folderList.Dequeue(); FileInfo f = tmp as FileInfo; if (f == null) { DirectoryInfo d = tmp as DirectoryInfo; foreach (FileSystemInfo fi in d.GetFileSystemInfos()) { folderList.Enqueue(fi); } } else { StreamReader br = null; try { br = new StreamReader(file); // 打开文件 } catch (IOException e) { // 没有打开文件,则产生异常 System.Console.Error.WriteLine("Cannot read '" + f.FullName + "': " + e.Message); continue; } String line; StringBuilder sb = new StringBuilder(2048); while ((line = br.ReadLine()) != null) { // 读入一行,直到文件结束 matcher = Regex.Match(line, pattern); // 匹配字符串 if (matcher.Success == true) { // 如果有匹配的字符串,则输出 sb.Append(line.Replace(line.Substring(line.IndexOf("<"), (line.LastIndexOf("/") + 1) - (line.IndexOf("<"))), "/"").Replace('>', '/"')); line = line.Substring(line.IndexOf("<") + 1, (line.LastIndexOf(">")) - (line.IndexOf("<") + 1)).Replace('/', '//'); fal.Enqueue(SourceLib + "//" + line); } else { sb.Append(line); } sb.Append("/r/n"); } br.Close(); // 关闭文件 StreamWriter w = new StreamWriter(f.FullName); w.WriteLine(sb.ToString()); w.Close(); } } while (fal.Count > 0) { String file = fal.Dequeue(); // 第2个参数开始,均为文件名。 String targetPath = enumDir + file.Substring(file.LastIndexOf("//") + 1); if (targetPath.IndexOf('<') == -1 && !!File.Exists(targetPath)) { File.CreateText(targetPath); StreamReader br = null; String line; try { br = new StreamReader(new StreamReader(file).BaseStream, System.Text.Encoding.UTF7); // 打开文件 } catch (IOException e) { // 没有打开文件,则产生异常 //UPGRADE_TODO: 在 .NET 中,method 'java.lang.Throwable.getMessage' 的等效项可能返回不同的值。. 'ms-help://MS.VSCC.2003/commoner/redir/redirect.htm?keyword="jlca1043"' System.Console.Error.WriteLine("Cannot read '" + file + "': " + e.Message); continue; } StreamWriter fw = new StreamWriter(targetPath); while ((line = br.ReadLine()) != null) { // 读入一行,直到文件结束 matcher = Regex.Match(line, pattern); // 匹配字符串 if (matcher.Success == true) { // 如果有匹配的字符串,则输出 fal.Enqueue(SourceLib + "//" + line.Substring(line.IndexOf("<") + 1, (line.LastIndexOf(">")) - (line.IndexOf("<") + 1)).Replace('/', '//')); line = line.Replace(line.Substring(line.IndexOf("<"), (line.LastIndexOf("/") + 1) - (line.IndexOf("<"))), "/""); line = line.Replace(">", "/""); } fw.Write(line + "/r/n"); } fw.Flush(); fw.Close(); br.Close(); // 关闭文件 } } Queue<string> folderListArr = new Queue<string>(); folderListArr.Enqueue(CurDir); while (folderListArr.Count > 0) { DirectoryInfo file = new DirectoryInfo(folderListArr.Dequeue()); FileSystemInfo[] files = file.GetFileSystemInfos(); for (int i = 0; i < files.Length; i++) { DirectoryInfo ddd = files[i] as DirectoryInfo; if (ddd != null) { folderListArr.Enqueue(files[i].FullName); } else { if (files[i].Extension == ".hpp") { all.Add(files[i].FullName.Replace(".hpp", ".cpp")); } } } } int count = 1; while (count > 0) { doSearch(SourceLib); all.Clear(); while (fal2.Count > 0) { String file1 = fal2.Dequeue(); // 第2个参数开始,均为文件名。 String targetPath = enumDir + file1.Substring(file1.LastIndexOf("//") + 1); if (targetPath.IndexOf('<') == -1 && !File.Exists(targetPath)) { File.CreateText(targetPath); StreamReader br = null; String line; try { br = new StreamReader(file1); // 打开文件 } catch (IOException e) { System.Console.Error.WriteLine("Cannot read '" + file1 + "': " + e.Message); continue; } StreamWriter fw; try { fw = new StreamWriter(targetPath); while ((line = br.ReadLine()) != null) { // 读入一行,直到文件结束 matcher = Regex.Match(line, pattern); // 匹配字符串 if (matcher.Success == true) { // 如果有匹配的字符串,则输出 fal2.Enqueue(SourceLib + "//" + line.Substring(line.IndexOf('<') + 1, (line.LastIndexOf('>')) - (line.IndexOf('<') + 1)).Replace('/', '//')); all.Add(fal2.Peek().Replace(".hpp", ".cpp")); line = line.Replace(line.Substring(line.IndexOf('<'), (line.LastIndexOf('/') + 1) - (line.IndexOf('<'))), "/""); line = line.Replace('>', '/"'); } fw.Write(line + "/r/n"); } fw.Flush(); fw.Close(); br.Close(); // 关闭文件 } catch (IOException e) { Console.Error.WriteLine(e.StackTrace); } } } count = all.Count; } } } private void doSearch(string path) { DirectoryInfo filepath = new DirectoryInfo(path); if (filepath.Exists) { FileSystemInfo[] fileArray = filepath.GetFileSystemInfos(); foreach (FileSystemInfo f in fileArray) { DirectoryInfo dd = f as DirectoryInfo; if (dd != null) { doSearch(f.FullName); } else { FileInfo ff = f as FileInfo; if (f.Name.IndexOf(filter) > -1) { foreach (string file in all) { if (file.IndexOf('<') == -1 && Path.GetFileName(file) == f.Name) { fal2.Enqueue(f.FullName); } } } } } } } static void Main(String[] args) { new InlineXercesc("xercesc"); FileInfo f = new FileInfo(CurDir + "//DetailCpp.cmd"); StreamWriter w = f.CreateText(); w.WriteLine("copy StdAfx.cpp+*.c+*.cpp " + CurDir + "//StdAfx.cpp && del *.c && del *.cpp"); w.Close(); } } 80.提取包含头文件列表 //InlineExt.cs using System; using System.IO; using System.Collections; using System.Collections.Generic; using System.Text.RegularExpressions; using System.Text; public class InlineExt { private System.String CurDir = Environment.CurrentDirectory; public InlineExt() { string pattern = "include.*?/".*?.hpp/""; // 第一个参数为需要匹配的字符串 Match matcher = null; FileInfo delfile = new System.IO.FileInfo(CurDir); FileInfo[] files2 = SupportClass.FileSupport.GetFiles(delfile); for (int l = 0; l < files2.Length; l++) { if (Directory.Exists(files2[l].FullName)) { Queue<String> ts = new Queue<String>(); FileInfo file = new FileInfo(Path.Combine(files2[l].FullName , "StdAfx.cpp")); StreamReader br = null; StreamWriter fw = null; String line; try { br = new StreamReader(new StreamReader(file.FullName, System.Text.Encoding.Default).BaseStream, new System.IO.StreamReader(file.FullName, System.Text.Encoding.Default).CurrentEncoding); // 打开文件 while ((line = br.ReadLine()) != null) { matcher = Regex.Match(line, pattern); // 匹配字符串 if (matcher.Success == true) { // 如果有匹配的字符串,则输出 ts.Enqueue(line.Substring(line.IndexOf('/"') + 1, (line.LastIndexOf('/"')) - (line.IndexOf('/"') + 1))); } } FileInfo file2 = new FileInfo(Path.Combine(files2[l].FullName , "ReadMe.txt")); if (File.Exists(file2.FullName)) { fw = new StreamWriter(file2.FullName, false, System.Text.Encoding.GetEncoding("GB2312")); //System.Text.Encoding.Default foreach(string it in ts) { fw.Write("#include /"" + it + "/"/r/n"); } } } catch (IOException e) { // 没有打开文件,则产生异常 Console.Error.WriteLine("Cannot read '" + file + "': " + e.Message); continue; } finally { try { if (br != null) br.Close(); if (fw != null) fw.Close(); } catch (IOException e) { Console.WriteLine(e.StackTrace); } } } } } public static void Main(System.String[] args) { new InlineExt(); } } //SupportClass.cs using System; /// <summary> /// Contains conversion support elements such as classes, interfaces and static methods. /// </summary> public class SupportClass { /// <summary> /// Writes the exception stack trace to the received stream /// </summary> /// <param name="throwable">Exception to obtain information from</param> /// <param name="stream">Output sream used to write to</param> public static void WriteStackTrace(System.Exception throwable, System.IO.TextWriter stream) { stream.Write(throwable.StackTrace); stream.Flush(); } /*******************************/ /// <summary> /// Represents the methods to support some operations over files. /// </summary> public class FileSupport { /// <summary> /// Creates a new empty file with the specified pathname. /// </summary> /// <param name="path">The abstract pathname of the file</param> /// <returns>True if the file does not exist and was succesfully created</returns> public static bool CreateNewFile(System.IO.FileInfo path) { if (path.Exists) { return false; } else { System.IO.FileStream createdFile = path.Create(); createdFile.Close(); return true; } } /// <summary> /// Compares the specified object with the specified path /// </summary> /// <param name="path">An abstract pathname to compare with</param> /// <param name="file">An object to compare with the given pathname</param> /// <returns>A value indicating a lexicographically comparison of the parameters</returns> public static int CompareTo(System.IO.FileInfo path, System.Object file) { if( file is System.IO.FileInfo ) { System.IO.FileInfo fileInfo = (System.IO.FileInfo)file; return path.FullName.CompareTo( fileInfo.FullName ); } else { throw new System.InvalidCastException(); } } /// <summary> /// Returns an array of abstract pathnames representing the files and directories of the specified path. /// </summary> /// <param name="path">The abstract pathname to list it childs.</param> /// <returns>An array of abstract pathnames childs of the path specified or null if the path is not a directory</returns> public static System.IO.FileInfo[] GetFiles(System.IO.FileInfo path) { if ( (path.Attributes & System.IO.FileAttributes.Directory) > 0 ) { String[] fullpathnames = System.IO.Directory.GetFileSystemEntries(path.FullName); System.IO.FileInfo[] result = new System.IO.FileInfo[fullpathnames.Length]; for(int i = 0; i < result.Length ; i++) result[i] = new System.IO.FileInfo(fullpathnames[i]); return result; } else return null; } /// <summary> /// Creates an instance of System.Uri class with the pech specified /// </summary> /// <param name="path">The abstract path name to create the Uri</param> /// <returns>A System.Uri instance constructed with the specified path</returns> public static System.Uri ToUri(System.IO.FileInfo path) { System.UriBuilder uri = new System.UriBuilder(); uri.Path = path.FullName; uri.Host = String.Empty; uri.Scheme = System.Uri.UriSchemeFile; return uri.Uri; } /// <summary> /// Returns true if the file specified by the pathname is a hidden file. /// </summary> /// <param name="file">The abstract pathname of the file to test</param> /// <returns>True if the file is hidden, false otherwise</returns> public static bool IsHidden(System.IO.FileInfo file) { return ((file.Attributes & System.IO.FileAttributes.Hidden) > 0); } /// <summary> /// Sets the read-only property of the file to true. /// </summary> /// <param name="file">The abstract path name of the file to modify</param> public static bool SetReadOnly(System.IO.FileInfo file) { try { file.Attributes = file.Attributes | System.IO.FileAttributes.ReadOnly; return true; } catch (System.Exception exception) { String exceptionMessage = exception.Message; return false; } } /// <summary> /// Sets the last modified time of the specified file with the specified value. /// </summary> /// <param name="file">The file to change it last-modified time</param> /// <param name="date">Total number of miliseconds since January 1, 1970 (new last-modified time)</param> /// <returns>True if the operation succeeded, false otherwise</returns> public static bool SetLastModified(System.IO.FileInfo file, long date) { try { long valueConstant = (new System.DateTime(1969, 12, 31, 18, 0, 0)).Ticks; file.LastWriteTime = new System.DateTime( (date * 10000L) + valueConstant ); return true; } catch (System.Exception exception) { String exceptionMessage = exception.Message; return false; } } } } 81.剪贴扳转换成打印字符 //using System.Windows.Forms; IDataObject iData = Clipboard.GetDataObject(); string str; // 将数据与指定的格式进行匹配,返回bool if (iData.GetDataPresent(DataFormats.Text)) { // GetData检索数据并指定一个格式 str = (string)iData.GetData(DataFormats.Text); string[] arr = str.Split("/r/n".ToCharArray()); StringBuilder sb = new StringBuilder(1024); sb.Append("System.out.println(/"@echo off/");/r/n"); foreach (string s in arr) { if (s.Trim()!="") { sb.Append("System.out.println(/"ECHO " + s.Replace("^", "^^").Replace("&", "^&").Replace(":", "^:").Replace(">", "^>").Replace("<", "^<").Replace("|", "^|").Replace("/"", "^/"").Replace(@"/", @"//").Replace("/"", "///"").Replace("@", "@@") + "/");"); sb.Append("/r/n"); } } Clipboard.SetText(sb.ToString()); } else { MessageBox.Show("目前剪贴板中数据不可转换为文本", "错误"); }
http://blog.csdn.net/wangyue4/article/details/4616801