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);}elseFile.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 filereturn;}infile.Close();MemoryStream ms = new MemoryStream();// Use the newly created memory stream for the compressed data.DeflateStream compressedzipStream = new DeflateStream(ms, CompressionMode.Compress, true);//CompressioncompressedzipStream.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);//Decompressionbyte[] 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("作者:zj53hao@qq.com");
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/SendToif(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.0useless.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%/binuseless.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);}}elsecontinue;}
*/53.选择文件夹对话框
/*
using System.IO;
using System.Windows.Forms.Design;;//加载System.Design.dll的.Net API
*/public class FolderDialog : FolderNameEditor{FolderNameEditor.FolderBrowser fDialog = newSystem.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;// 将数据与指定的格式进行匹配,返回boolif (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属性设置属性值为contextMenuStrip160.文件夹复制到整合操作
//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());}elseFile.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;// 将数据与指定的格式进行匹配,返回boolif (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.Defaultforeach(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;// 将数据与指定的格式进行匹配,返回boolif (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

C#中的文件操作大全相关推荐

  1. java中文件,java中文件操作大全

    java中文件操作大全 一.获得控制台用户输入的信息 view plaincopy to clipboardprint? / //获得控制台用户输入的信息 return throws ioexcept ...

  2. 读取Java文件到byte数组的三种方式及Java文件操作大全(包括文件加密,String加密)

    读取Java文件到byte数组的三种方式 package zs;import java.io.BufferedInputStream; import java.io.ByteArrayOutputSt ...

  3. C++Builder文件操作大全

    C++Builder文件操作大全 在编程的过程中,文件的操作是一个经常用到的问题,在C++Builder中,可以使用多种方法对文件操作,下面我就按以下几个部分对此作详细介绍,就是: 1.基于C的文件操 ...

  4. php 语言文件操作,php中目录文件操作详谈

    php中目录文件操作详谈 首先介绍的是一个从目录读取的函数,opendir(),readdir(),closedir(),使用的时候是先打开文件句柄,以下是小编整理的php中目录,文件操作详谈,欢迎来 ...

  5. VC 文件操作大全,打开,保存,复制,删除,查找等

    各种关于文件的操作在程序设计中十分常见,如果能对这些操作都了如指掌,就可以根据实际情况找到最佳的解决方案,从而可以在较短的时间内编写出高效 的代码.本文对Visual C++中有关文件操作进行了全面的 ...

  6. MFC文件操作大全,打开,保存,复制,删除,查找等

    各种关于文件的操作在程序设计中十分常见,如果能对这些操作都了如指掌,就可以根据实际情况找到最佳的解决方案,从而可以在较短的时间内编写出高效 的代码.本文对Visual C++中有关文件操作进行了全面的 ...

  7. modelsim读取文件中的数据_modelsim中的文件操作—— 大数据测试

    在modelsim中不可避免的需要进行文件操作,在窗口中查看代码的操作情况,下面是我自己M序列实验中的一段测试代码 integer i,j ,k,m; integer m_dataFILE , ind ...

  8. 【C 语言】文件操作 ( C 语言中的文件操作函数 | 磁盘与内存缓冲区 | 缓冲区工作机制 )

    文章目录 一.C 语言中的文件操作函数 二.磁盘与内存缓冲区 三.缓冲区工作机制 一.C 语言中的文件操作函数 读取 文本文件 可以使用 getc , fgets , fscanf 函数 , 向 文本 ...

  9. Python中的文件操作和异常

    Python中的文件操作和异常 文章目录 Python中的文件操作和异常 一.文件 01. 文件的概念 1.1 文件的概念和作用 1.2 文件的存储方式 文本文件和二进制文件 02. 文件的基本操作 ...

最新文章

  1. mysql表打包到程序中_关于数据库程序的打包
  2. iBATIS第一部分基础
  3. netca error
  4. 实验5:配置通过静态工厂方法创建的bean、实例工厂方法创建的bean、(FactoryBean测试)★
  5. java jmeter_使用Jmeter中的Java Request进行性能测试
  6. 乐山市计算机学校的董事长是,乐山市计算机学校干部主题教育
  7. MicroBlaze软核介绍
  8. thinkphp 视图(一)
  9. java 按照笔画排序_oracle 按照拼音、部首、笔画排序
  10. java 如何处理正则
  11. 周志华《机器学习》西瓜书第一章绪论第一部分
  12. win32汇编动态链接库的编写及使用
  13. 安装ubuntu18.04报:failed to load ldlinux.c32
  14. Javascript 高级程序设计第三版理解
  15. 编写项目开发的readme.md自述文件_MarkdownPad2与awesomium
  16. linux 大黄蜂怎么安装视频教程,使用神舟K680E-G6D1在Deepin Linux系统下安装大黄蜂驱动的方法...
  17. java web 车辆管理系统_javaweb车辆信息管理系统
  18. 流行前端几大UI框架排行榜
  19. 小米电视联网后显示无法解析小米电视服务器,小米电视机功能详解 教你轻松使用...
  20. word 绘制计算机结构图,职称计算机考试辅导:Word绘制基本图形

热门文章

  1. 2022高处安装、维护、拆除考试模拟100题及答案
  2. Web.config详解+asp.net优化(1)
  3. 信号处理知识回顾博文收藏 (一)小波分析相关
  4. CHIL-SQL-快速参考
  5. selinux--初篇
  6. 网页html5播放器,一个强大的开源HTML5视频播放器,字节出品
  7. OBPS开发平台——导入功能整体过程
  8. Pytorch打怪路(三)Pytorch创建自己的数据集2
  9. 配置 FoxyProxy 规则自由切换代理模式
  10. 软件工程小分队第一次会议