C# 文件操作類大全


 

1、創建文件夾

   //using 
   System.IO;
   Directory.CreateDirectory(%%1); 

2、創建文件

   //using 
  System.IO;
   File.Create(%%1);

3、刪除文件夾
//using 
System.IO;
Directory.Delete(%%1);

4.刪除文件
  //using 
  System.IO;
  File.Delete(%%1);

5.刪除一個目錄下所有的文件夾

 1 //using 
 2 System.IO;
 3 foreach (string dirStr in Directory.GetDirectories(%%1))
 4 {
 5       DirectoryInfo dir = new DirectoryInfo(dirStr);
 6       ArrayList folders=new ArrayList();
 7       FileSystemInfo[] fileArr = dir.GetFileSystemInfos();
 8      for (int i = 0; i < folders.Count; i++)
 9     {
10          FileInfo f = folders[i] as FileInfo;
11          if (f == null)
12         {
13              DirectoryInfo d = folders[i] as DirectoryInfo;
14              d.Delete();
15           }
16      }
17 }

 


6、清空文件夾
//using 
System.IO;
Directory.Delete(%%1,true);
Directory.CreateDirectory(%%1);

7、讀取文件
7.1.操作系統默認編碼
   

//using 
System.IO;
StreamReader s = File.OpenText(%%1);
string %%2 = null;
while ((%%2 = s.ReadLine()) != null){
         %%3
}
s.Close();

 



7.2.UTF-8編碼
/*
using 
System.IO;
using System.Text;
*/
StreamReader srfile = new 
StreamReader(%%1,Encoding.UTF8);
while ((String %%2 = srfile.ReadLine()) != 
null)
{
%%3
}
srfile.Close();

7.3.分塊讀取
/*
using 
System.IO;
using System.Text;
*/
try
{
FileStream fs=new 
FileStream(%%1,FileMode.Open,FileAccess.Read);
BinaryReader br=new 
BinaryReader(fs,new ASCIIEncoding());
byte[] 
chunk;
do
{
chunk=br.ReadBytes(10240);
if(chunk.Length>0)
{
%%2 
//chunk,chunk.Length
}
}
while(chunk.Length>0);
fs.Close();
}
catch
{
//return 
-1;
}

8.寫入文件
//using System.IO;
FileInfo f = new 
FileInfo(%%1);
StreamWriter w = 
f.CreateText();
w.WriteLine(%%2);
w.Flush();
w.Close();

9.寫入隨機文件
//using 
System.IO;
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(Path.DirectorySeparatorChar) == %%2.Length - 1) ? %%2 : 
%%2+Path.DirectorySeparatorChar;
string parent = 
Path.GetDirectoryName(%%1);
Directory.CreateDirectory(path + 
Path.GetFileName(%%1));
DirectoryInfo dir = new 
DirectoryInfo((%%1.LastIndexOf(Path.DirectorySeparatorChar) == %%1.Length - 1) ? 
%%1 : %%1 + Path.DirectorySeparatorChar);
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(Path.DirectorySeparatorChar) 
== parent.Length - 1) ? parent : parent + Path.DirectorySeparatorChar, 
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(Path.DirectorySeparatorChar) == %%2.Length - 1) ? %%2 : 
%%2 + Path.DirectorySeparatorChar;
if (Path.GetPathRoot(%%1) == 
Path.GetPathRoot(%%2))
Directory.Move(%%1, path + 
filename);
else
{
string parent = 
Path.GetDirectoryName(%%1);
Directory.CreateDirectory(path + 
Path.GetFileName(%%1));
DirectoryInfo dir = new 
DirectoryInfo((%%1.LastIndexOf(Path.DirectorySeparatorChar) == %%1.Length - 1) ? 
%%1 : %%1 + Path.DirectorySeparatorChar);
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(Path.DirectorySeparatorChar) 
== parent.Length - 1) ? parent : parent + Path.DirectorySeparatorChar, 
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(Path.DirectorySeparatorChar) == dir2.Length - 1) ? dir2 : dir2 
+ Path.DirectorySeparatorChar;
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(Path.DirectorySeparatorChar) 
== parent.Length - 1) ? parent : parent + Path.DirectorySeparatorChar, 
%%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(Path.DirectorySeparatorChar) == %%2.Length - 1) ? %%2 : %%2 + 
Path.DirectorySeparatorChar;
string parent = 
Path.GetDirectoryName(%%1);
Directory.CreateDirectory(path + 
Path.GetFileName(%%1));
DirectoryInfo dir = new 
DirectoryInfo((%%1.LastIndexOf(Path.DirectorySeparatorChar) == %%1.Length - 1) ? 
%%1 : %%1 + Path.DirectorySeparatorChar);
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(Path.DirectorySeparatorChar) 
== parent.Length - 1) ? parent : parent + Path.DirectorySeparatorChar, 
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(Path.DirectorySeparatorChar) 
== %%1.Length - 1) ? %%1 +Path.GetFileName(fileStr): %%1 + 
Path.DirectorySeparatorChar+Path.GetFileName(fileStr),(%%2.LastIndexOf(Path.DirectorySeparatorChar) 
== %%2.Length - 1) ? %%2 +Path.GetFileName(fileStr): %%2 + 
Path.DirectorySeparatorChar+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+Path.DirectorySeparatorChar+file.getname(%%1));

26.移動一個文件夾下所有文件到另一個目錄
//using 
System.IO;
foreach (string fileStr in 
Directory.GetFiles(%%1))
File.Move((%%1.LastIndexOf(Path.DirectorySeparatorChar) 
== %%1.Length - 1) ? %%1 +Path.GetFileName(fileStr): %%1 + 
Path.DirectorySeparatorChar+Path.GetFileName(fileStr),(%%2.LastIndexOf(Path.DirectorySeparatorChar) 
== %%2.Length - 1) ? %%2 +Path.GetFileName(fileStr): %%2 + 
Path.DirectorySeparatorChar+Path.GetFileName(fileStr));

27.指定目錄下搜索文件
/*
using 
System.Text;
using System.IO;
*/
string fileName = %%1;
DriveInfo[] 
drives = DriveInfo.GetDrives();
string parent = 
Path.GetDirectoryName(%%2);
DirectoryInfo dir = new 
DirectoryInfo((%%2.LastIndexOf(Path.DirectorySeparatorChar) == %%2.Length - 1) ? 
%%2 : %%2 + Path.DirectorySeparatorChar);
FileSystemInfo[] 
fileArr;
try
{
fileArr = dir.GetFileSystemInfos();
}
catch 
(Exception)
{
continue;
}
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;
try
{
foreach (FileSystemInfo fi in 
d.GetFileSystemInfos())
{
Folders.Enqueue(fi);
}
}
catch 
(Exception) { }
}
else if (f.Name.IndexOf(fileName) > 
-1)
{
%%3=f.FullName;
return;
}
}

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(Path.DirectorySeparatorChar)+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(Path.DirectorySeparatorChar) + 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.Windows.Forms; //加載System.Windows.Forms.dll的.Net API
using 
System.IO;
using System.Text;
*/
OpenFileDialog jfc = new 
OpenFileDialog();
OpenFileDialog jfc2 = new OpenFileDialog();
jfc.Filter = 
"可執行文件(*.exe)|*.exe|壓縮文件(*.zip)|*.zip";
jfc2.Filter = 
"文本文件(*.txt)|*.txt";
if(jfc.ShowDialog() == DialogResult.OK && 
jfc2.ShowDialog() == DialogResult.OK)
{
byte[] sRead=new 
byte[fsr.Length];
FileStream fsr = new 
FileStream(jfc.FileName,fsr.Read(sRead, FileMode.Open, 
FileAccess.Read));
fsr.Read(sRead,0,sRead.Length);
fsr.Close();
FileInfo 
f=new FileInfo(jfc2.FileName);
StreamWriter w=f.CreateText();
int 
ka=3,kb=5,kc=2,kd=7,js=0;
StringBuilder builder = new 
StringBuilder(sRead.Length * 2);
for(int 
i=0;i<sRead.Length-1;i+=2)
{
char c1=sRead[i];
char 
c2=sRead[i+1];
int tmp=ka*c1+kc*c2;
while(tmp<0)
tmp+=1024;
char 
s1=tmp%1024;
char high = (char)((s1 >> 4) & 0x0f);
char low = 
(char)(s1 & 
0x0f);
high=high<10?(high+'0'):(high-(char)10+'A');
low=low<10?(low+'0'):(low-(char)10+'A');
builder.Append(high);
builder.Append(low);
tmp=kb*c1+kd*c2;
while(tmp<0)
tmp+=1024;
char 
s2=tmp%1024;
high = (char)((s2 >> 4) & 0x0f);
low = (char)(s2 

0x0f);
high=high<10?(high+'0'):(high-(char)10+'A');
low=low<10?(low+'0'):(low-(char)10+'A');
builder.Append(high);
builder.Append(low);
}
if(js==1)
{
char 
s3=(sRead[sRead.Length-1]-4)%1024;
char high = (char)((s3 >> 4) & 
0x0f);
char low = (char)(s3 & 
0x0f);
high=high<10?(high+'0'):(high-(char)10+'A');
low=low<10?(low+'0'):(low-(char)10+'A');
builder.Append(high);
builder.Append(low);
}
w.Write(builder.ToString());
w.Flush();
w.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=%%4; 
//"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=%%4; //"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;

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.IDEA加密算法


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 + Path.DirectorySeparatorChar + 
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 == 
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 
variable=%%1;
string search=%%2;
string replace=%%3;
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 
path=%%1;
string search=%%2;
string replace=%%3;
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)
{
string 
path=%%1;
string search=%%2;
string replace=%%3;
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 = %%1; //"WPCFile"
keyValue = %%2; 
//"資源包文件"
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 = %%3; 
//".wpc"
keyValue = %%1;
key = 
Registry.ClassesRoot.CreateSubKey(keyName);
key.SetValue("", 
keyValue);
}
catch 
(Exception)
{
}
}

51.批量轉換編碼從GB2312到Unicode

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;
int 
i=0;
Environment.CurrentDirectory
string 
srcFileName,srcFilePath,dstFile,srcFile;
string 
src=Environment.CurrentDirectory+"\\*.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);
string 
destPath=string(crEnVar);
destPath+="\\SendTo\\";
// 
lasting("C:\\Sun\\Java\\eclipse\\eclipse.exe",destPath);
string 
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;string 
StrPath;
RegJavaHome.m_RootKey=HKEY_LOCAL_MACHINE;
RegJavaHome.OpenKey("SOFTWARE\\JavaSoft\\Java 
Development 
Kit\\1.6");
RegJavaHome.ReadString("JavaHome",StrPath);

CRegEdit 
SysJavaHome;string 
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);
// 
string temp=destPath+"JBoss編譯調試.cmd";
string 
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);
}
string 
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);
string 
StrPath;

CRegEdit SysJavaHome;string 
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)
{
string StrPath;

CRegEdit 
SysJavaHome;string 
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.批量轉換編碼從Unicode到GB2312

54.刪除空文件夾
/*
using 
System.IO;
using System.Text.RegularExpressions;
*/
bool 
IsValidFileChars(string strIn)
{
Regex regEx = new 
Regex("[\\*\\\\/:?<>|\"]");
return 
!regEx.IsMatch("aj\\pg");
}
try
{
string path = 
%%1;
if(!IsValidFileChars(path))
throw new 
Exception("非法目錄名!");
if(!Directory.Exists(path))
throw new 
Exception("本地目錄路徑不存在!");
DirectoryInfo dir = new 
DirectoryInfo(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);
Directory.Delete(path);
}
foreach 
(string direct in dirs)
{
Folders.Enqueue(direct);
}
catch 
(Exception 
ep)
{
MessageBox.show(ep.ToString());
}
}

55.GB2312文件轉UTF-8格式
/*
using 
System.IO;
using System.Text;
*/
File.WriteAllText(%%2, 
File.ReadAllText(%%1,Encoding.GetEncoding("GB2312")), 
Encoding.UTF8);

56.UTF-8文件轉GB2312格式
/*
using System.IO;
using 
System.Text;
*/
File.WriteAllText(%%2, 
File.ReadAllText(%%1,Encoding.UTF8), 
Encoding.GetEncoding("GB2312"));

57.獲取文件路徑的父路徑
//using 
System.IO;
string 
%%2=Directory.GetParent(%%1);

58.Unicode文件轉UTF-8格式
/*
using 
System.IO;
using System.Text;
*/
StreamReader srfile = new 
StreamReader(%%1, Encoding.Unicode);
StreamWriter swfile = new 
StreamWriter(%%2, false, Encoding.UTF8);
while ((String strLin = 
srfile.ReadLine()) != 
null)
{
swfile.WriteLine(strLin);
}
srfile.Close();
swfile.Close();

59.CRC循環冗余校驗
//using 
System.Text;
class 
CRCVerifyLHY
{
//dataStream數組中的dataStream[0]和dataStream[1]為CRC校驗碼的初始值,即0x0000。其他的數組元素即為要傳輸的信息碼,cRC_16為生成多項式的簡記式

//以CRC16-CCITT為例進行說明,CRC校驗碼為16位,生成多項式17位,其簡記式實際是0x11021,

//但是生成多項式的最高位固定為1,故在簡記式中忽略最高位1了,CRC16-CCITT的簡記式就可以寫為0x1021

public 
static ushort GetCRC(byte[] dataStream, ushort cRC_16)
{
ushort cRC_temp = 
Convert.ToUInt16((dataStream[dataStream.Length - 1] << 8) + 
dataStream[dataStream.Length - 2]);
int totalBit = (dataStream.Length - 2) * 
8;
for (int i = totalBit - 1; i >= 0; i--)
{
ushort a = 
Convert.ToUInt16(i / 8);

ushort b = Convert.ToUInt16(i % 
8);

ushort nextBit = Convert.ToUInt16((dataStream[a] >> b) & 
0x01);
if (cRC_temp >= 32768)

{
cRC_temp = 
Convert.ToUInt16(((cRC_temp - 32768) << 1) + nextBit);
cRC_temp = 
Convert.ToUInt16(cRC_temp ^ cRC_16);
}
else
{
cRC_temp = 
Convert.ToUInt16((cRC_temp << 1) + nextBit);
}
}
return 
cRC_temp;
}
}
byte[] array = new byte[] { 0, 0, 157 };
ushort 
cRC_Result = CRCVerifyLHY.GetCRC(array, 
0x1021);
Console.WriteLine(cRC_Result);
Console.ReadKey();

60.判斷是否為空文件
//using 
System.IO;
StreamReader sr = new StreamReader(aFile);
string str;
while 
((str = sr.ReadLine()) != null)
{
str = str.Trim();
if (str != 
null)
{
sr.Close();
//空白文件
}
}
sr.Close();

61.終止程序
//using 
System.Diagnostics;
Process[] killprocess = 
System.Diagnostics.Process.GetProcessesByName(%%1); //"calc"
foreach 
(System.Diagnostics.Process p in 
killprocess)
{
p.Kill();
}

62.定時關機
/*
using 
System.Diagnostics;
using System.Management;
using 
System.Runtime.InteropServices;
[DllImport("kernel32.dll",ExactSpelling=true)]
internal 
static extern IntPtr GetCurrentProcess();
[DllImport("advapi32.dll", 
ExactSpelling=true, SetLastError=true) ]
internal static extern bool 
OpenProcessToken( IntPtr h, int acc, ref IntPtr phtok 
);
[DllImport("advapi32.dll", SetLastError=true) ]
internal static extern 
bool LookupPrivilegeValue( string host, string name, ref long pluid 
);
[DllImport("advapi32.dll", ExactSpelling=true, SetLastError=true) 
]
internal static extern bool AdjustTokenPrivileges( IntPtr htok, bool 
disall, ref TokPriv1Luid newst, int len, IntPtr prev, IntPtr relen 
);
[DllImport("user32.dll", ExactSpelling=true, SetLastError=true) 
]
internal static extern bool ExitWindowsEx( int flg, int rea);
internal 
const int SE_PRIVILEGE_ENABLED = 0x00000002;
internal const int TOKEN_QUERY = 
0x00000008;
internal const int TOKEN_ADJUST_PRIVILEGES = 
0x00000020;
internal const string SE_SHUTDOWN_NAME = 
"SeShutdownPrivilege";
//注銷參數 中止進程,然后注銷
internal const int EWX_LOGOFF = 
0x00000000;
//重啟參數 重新引導系統
internal const int EWX_REBOOT = 
0x00000002;
//公用參數 強迫中止沒有響應的進程
internal const int EWX_FORCE = 
0x00000004;
//關機參數
internal const int EWX_POWEROFF = 
0x00000008;

//此參數沒有用到 關閉系統
internal const int EWX_SHUTDOWN = 
0x00000001;
//此參數沒有用到
internal const int EWX_FORCEIFHUNG = 
0x00000010;

private int second = 0;
*/
/// <summary>
/// 
主函數
/// </summary>
/// <param 
name="flg"></param>
private static void DoExitWin( int flg 
)
{
//在進行操作之前關掉用戶級別的進程。
KillUserProcess();

bool 
ok;
TokPriv1Luid tp;
IntPtr hproc = GetCurrentProcess();
IntPtr htok = 
IntPtr.Zero;
ok = OpenProcessToken( hproc, TOKEN_ADJUST_PRIVILEGES | 
TOKEN_QUERY, ref htok );
tp.Count = 1;
tp.Luid = 0;
tp.Attr = 
SE_PRIVILEGE_ENABLED;
ok = LookupPrivilegeValue( null, SE_SHUTDOWN_NAME, ref 
tp.Luid );
ok = AdjustTokenPrivileges( htok, false, ref tp, 0, IntPtr.Zero, 
IntPtr.Zero );
ok = ExitWindowsEx( flg, 0 );
}

/// 
<summary>
/// 關機
/// </summary>
public static void 
PowerOff()
{
DoExitWin( EWX_FORCE | EWX_POWEROFF );
}

/// 
<summary>
/// 注銷
/// </summary>
public static void 
LogoOff()
{
DoExitWin ( EWX_FORCE | EWX_LOGOFF );
}

/// 
<summary>
/// 重啟
/// </summary>
public static void 
Reboot()
{
DoExitWin( EWX_FORCE | EWX_REBOOT );
}

/// 
<summary>
/// 計時器
/// </summary>
/// <param 
name="sender"></param>
/// <param 
name="e"></param>
private void timer1_Tick(object sender, 
System.EventArgs e)
{
if (second > 0)
{
this.labelSecond.Text = 
GetTimeString( second ).ToString();
second--;

if( second == 
0)
{
//關機
PowerOff() 
;
}
}
}

[StructLayout(LayoutKind.Sequential, 
Pack=1)]
internal struct TokPriv1Luid
{
public int Count;
public 
long Luid;
public int Attr;
}

/// <summary>
/// 
依據指定的秒數換算出等價的小時分鍾和秒
/// </summary>
/// <param 
name="s"></param>
/// <returns></returns>
private 
string GetTimeString( int s )
{
//小時
int lastHours = s/3600 
;
//分鍾
int lastMinute = (s%3600)/60;
//秒
int lastSecond = 
(s%3600)%60;

//用於顯示的字符串
string timeShow = "";
timeShow = timeShow + 
"";

if( lastHours == 0)
{
//說明此種情況不夠1小時
if(lastMinute == 
0)
{
//說明此情況不足1分鍾
timeShow = timeShow + lastSecond 
+"秒";
}
else
{
timeShow = timeShow + lastMinute +"分鍾 ";
timeShow 
= timeShow + lastSecond +"秒";
}
}
else
{
//說明超過1小時
timeShow = 
timeShow + lastHours +"小時 ";
timeShow = timeShow + lastMinute +"分鍾 
";
timeShow = timeShow + lastSecond +"秒";
}

return 
timeShow.ToString();
}

/// <summary>
/// 關掉用戶級別的進程
/// 
</summary>
private static void 
KillUserProcess()
{
//取得當前計算機的用戶名稱
string computerName = 
System.Net.Dns.GetHostName();
//依據計算機的名稱取得當前運行的進程並保存於一個數組中
Process 
[]remoteAll = Process.GetProcesses( computerName );

Process processTemp = 
new Process();

SelectQuery query1 = new SelectQuery("Select * from 
Win32_Process");
ManagementObjectSearcher searcher1 = new 
ManagementObjectSearcher(query1);
string text1 = "";
text1 += 
"當前運行進程總數:"+remoteAll.Length.ToString()+"\n";

//進程次序
int iCount = 
0;
try
{
foreach (ManagementObject disk in 
searcher1.Get())
{
ManagementBaseObject inPar = 
null;
ManagementBaseObject outPar = null;

inPar = 
disk.GetMethodParameters("GetOwner");
outPar = disk.InvokeMethod("GetOwner", 
inPar,null);

//依據ID號獲取進程
processTemp = Process.GetProcessById( 
Convert.ToInt32(disk["ProcessId"].ToString()));
//如果是用戶的進程就把該進程關掉
if(outPar["Domain"] 
!= null)
{
if(outPar["Domain"].ToString().ToLower() == computerName 
)
{
// 
//去掉兩個進程不能關掉
if((processTemp.ProcessName.ToString().ToLower()!="explorer") 
&& (processTemp.ProcessName.ToString().ToLower() !="ctfmon")&& 
(processTemp.ProcessName.ToString().ToLower() !="closemachine") 
)
{
processTemp.Kill();
}
}
}
// text1 += "進程" +(++iCount)+": 
ProcessName="+processTemp.ProcessName.ToString() + 
",User="+outPar["User"]+",Domain="+outPar["Domain"]+"\n";
}
}
catch 
(Exception ex)
{
text1 = ex.Message;
}

// this.label1.Text = 
str;

}
//預定關機時間
DateTime time1 = DateTime.Now;
//預定關機時間的日期 
年月日
string time1Front = %%1; 
//time1.ToShortDateString()

//預定關機時間的小時
string time1Hour = 
%%2;

//預定關機時間的分鍾
string time1Minute = %%3;

string b = 
time1Front +" "+ time1Hour +":"+time1Minute;
time1 = Convert.ToDateTime( b 
);
//當前時間
DateTime time2 = DateTime.Now;

//求出兩個時間差
TimeSpan 
time3 = time1 - time2;

//計算兩個時間相錯的描述
string c = 
time3.TotalSeconds.ToString("#00");
if( Convert.ToInt32( c ) <= 
0)
{
MessageBox.Show("請重新選擇當前時間之后的時間為自動關機時間。");
}

second = 
Convert.ToInt32(c);

63.顯示進程列表
//using System.Diagnostics;
Process[] 
processes;
processes = System.Diagnostics.Process.GetProcesses();
Process 
process;
for(int i = 0;i<processes.Length-1;i++)
{
process = 
processes[i];
//process.Id
//process.ProcessName
}

64.遍歷文件夾列出文件大小

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(Path.DirectorySeparatorChar) 
== direc.Length - 1) ? direc + Path.GetFileName(fileStr) : direc + 
Path.DirectorySeparatorChar + Path.GetFileName(fileStr), 
(aa.Path.LastIndexOf(Path.DirectorySeparatorChar) == aa.Path.Length - 1) ? 
aa.Path + Path.GetFileName(fileStr) : aa.Path + Path.DirectorySeparatorChar + 
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(Path.DirectorySeparatorChar) == aa.Path.Length - 1) ? 
aa.Path : aa.Path + Path.DirectorySeparatorChar;
string parent = 
Path.GetDirectoryName(%%1);
Directory.CreateDirectory(path + 
Path.GetFileName(%%1));
%%1 = (%%1.LastIndexOf(Path.DirectorySeparatorChar) 
== %%1.Length - 1) ? %%1 : %%1 + Path.DirectorySeparatorChar;
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(Path.DirectorySeparatorChar) 
== parent.Length - 1) ? parent : parent + Path.DirectorySeparatorChar, 
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(@"C:\Program 
Files\Internet Explorer\iexplore.exe", %%1); 
//"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.獲取磁盤所有分區,把結果放在數組drives中
//using 
System.IO;
DriveInfo[] drives = 
DriveInfo.GetDrives();

71.激活一個程序或程序關聯的文件
//using 
System.Diagnostics;
Process LandFileDivisison;
LandFileDivisison = new 
System.Diagnostics.Process();
LandFileDivisison.StartInfo.FileName = 
%%1;
LandFileDivisison.Start();

72.MP3播放
/*
using 
System.Runtime.InteropServices;
public static uint SND_ASYNC = 0x0001; // 
play asynchronously
public static uint SND_FILENAME = 0x00020000; // name is 
file name
[DllImport("winmm.dll")]
public static extern int 
mciSendString(string m_strCmd, string m_strReceive, int m_v1, int 
m_v2);
[DllImport("Kernel32", CharSet = CharSet.Auto)]
static extern Int32 
GetShortPathName(String path,StringBuilder shortPath, Int32 
shortPathLength);
*/
string name = %%1
StringBuilder shortpath=new 
StringBuilder(80);
int 
result=GetShortPathName(name,shortpath,shortpath.Capacity);
name=shortpath.ToString();
mciSendString(@"close 
all",null,0,0);
mciSendString(@"open "+name+" alias song",null,0,0); 
//打開
mciSendString("play song",null,0,0); //播放

73.WAV播放
/*
using 
System.Runtime.InteropServices;
public static uint SND_ASYNC = 0x0001; // 
play asynchronously
public static uint SND_FILENAME = 0x00020000; // name is 
file name
[DllImport("winmm.dll")]
public static extern int 
mciSendString(string m_strCmd, string m_strReceive, int m_v1, int 
m_v2);
[DllImport("Kernel32", CharSet = CharSet.Auto)]
static extern Int32 
GetShortPathName(String path,StringBuilder shortPath, Int32 
shortPathLength);
*/
string name = %%1
StringBuilder shortpath=new 
StringBuilder(80);
int 
result=GetShortPathName(name,shortpath,shortpath.Capacity);
name=shortpath.ToString();
mciSendString(@"close 
all",null,0,0);
mciSendString(@"open "+name+" alias song",null,0,0); 
//打開
mciSendString("play song",null,0,0); 
//播放


74.寫圖像到剪切板
//using System.IO;
Bitmap bm =new 
Bitmap(filename);
Clipboard.SetDataObject(bm,true);

75.從剪貼板復制圖像到窗體
if 
(Clipboard.ContainsImage())
{
this.pictureBox1.Image = 
Clipboard.GetImage();
}
剪貼板中的數據類型
//using 
System.IO;
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.刪除文件夾下的所有文件且不刪除文件夾下的文件夾
//using 
System.IO;

77.XML遍歷結點屬性值
//using 
System.IO;

78.Unicode文件轉GB2312格式
/*
using System.IO;
using 
System.Text;
*/
File.WriteAllText(%%2, 
File.ReadAllText(%%1,Encoding.Unicode), 
Encoding.GetEncoding("GB2312"));

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 + 
Path.DirectorySeparatorChar + files2.Name + 
Path.DirectorySeparatorChar;
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 + Path.DirectorySeparatorChar + 
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(Path.DirectorySeparatorChar) + 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 + 
Path.DirectorySeparatorChar + 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(Path.DirectorySeparatorChar) + 
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 + 
Path.DirectorySeparatorChar + 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.GB2312文件轉Unicode格式
/*
using 
System.IO;
using System.Text;
*/
File.WriteAllText(%%2, 
File.ReadAllText(%%1,Encoding.GetEncoding("GB2312")), 
Encoding.Unicode);

82.Java程序打包
/*
using System.IO;
using 
System.Collections;
using System.Diagnostics;
*/
string path = 
%%1;
path = (path.LastIndexOf(Path.DirectorySeparatorChar) == path.Length - 
1) ? path : path + Path.DirectorySeparatorChar;
FileInfo myFilePath = new 
FileInfo(path + "conf.txt");
DirectoryInfo dir = new 
DirectoryInfo(path);
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;
foreach (FileSystemInfo fi in 
d.GetFileSystemInfos())
{
Folders.Enqueue(fi);
}
}
else
{
if 
(f.Name.Substring(2).Contains('.')
&& 
f.Name.Substring(
f.Name.LastIndexOf('.'))
== ".java")
{
className = 
f.Name.Substring(0,
f.Name.LastIndexOf('.'));
Stream resultFile = 
myFilePath.Open(FileMode.OpenOrCreate);
StreamWriter myFile = new 
StreamWriter(resultFile);
myFile.WriteLine("Main-Class:" + 
className);
myFile.Flush();
myFile.Close();
resultFile.Close();
LandFileDivisison 
= new System.Diagnostics.Process();
LandFileDivisison.StartInfo.FileName = 
"javac "
+ f.FullName
+ " && jar cmf "
+ myFilePath.FullName + 
" "
+ className + ".jar " + className

".class";
LandFileDivisison.Start();
LandFileDivisison = new 
System.Diagnostics.Process();
LandFileDivisison.StartInfo.FileName = "java 
-jar " + className;
LandFileDivisison.Start();
}
}
}
dir = new 
DirectoryInfo(path);
fileArr = dir.GetFileSystemInfos();
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;
foreach (FileSystemInfo fi in 
d.GetFileSystemInfos())
{
Folders.Enqueue(fi);
}
}
else
{
if 
(f.Name.Substring(2).Contains('.')
&& 
f.Name.Substring(
f.Name.LastIndexOf('.'))
== 
".class")
f.Delete();
}
}

83.UTF-8文件轉Unicode格式

84.創建PDF文檔

85.創建Word文檔
/*
添加引用->COM->Microsoft 
Word 11.0 Object Library
using 
Word;
*/
//下面的例子中包括C#對Word文檔的創建、插入表格、設置樣式等操作:

//(例子中代碼有些涉及數據信息部分被省略,重要是介紹一些C#操作word文檔的方法)

public 
string CreateWordFile(string CheckedInfo)
{
string message = 
"";
try
{
Object Nothing = 
System.Reflection.Missing.Value;
Directory.CreateDirectory("C:/CNSI"); 
//創建文件所在目錄

string name = "CNSI_" + 
DateTime.Now.ToShortString()+".doc";
object filename = "C://CNSI//" + name; 
//文件保存路徑
//創建Word文檔
Word.Application WordApp = new 
Word.ApplicationClass();
Word.Document WordDoc = WordApp.Documents.Add(ref 
Nothing, ref Nothing, ref Nothing, ref 
Nothing);

//添加頁眉
WordApp.ActiveWindow.View.Type = 
WdViewType.wdOutlineView;

WordApp.ActiveWindow.View.SeekView = 
WdSeekView.wdSeekPrimaryHeader;
WordApp.ActiveWindow.ActivePane.Selection.InsertAfter("[頁眉內容]");
WordApp.Selection.ParagraphFormat.Alignment 

Word.WdParagraphAlignment.wdAlignParagraphRight;//設置右對齊
WordApp.ActiveWindow.View.SeekView 

WdSeekView.wdSeekMainDocument;//跳出頁眉設置

WordApp.Selection.ParagraphFormat.LineSpacing 
= 15f;//設置文檔的行間距

//移動焦點並換行
object count = 14;

object WdLine = 
Word.WdUnits.wdLine;//換一行;
WordApp.Selection.MoveDown(ref WdLine, ref count, 
ref 
Nothing);//移動焦點
WordApp.Selection.TypeParagraph();//插入段落

//文檔中創建表格
Word.Table 
newTable = WordDoc.Tables.Add(WordApp.Selection.Range, 12, 3, ref Nothing, ref 
Nothing);
//設置表格樣式
newTable.Borders.OutsideLineStyle = 
Word.WdLineStyle.wdLineStyleThickThinLargeGap;
newTable.Borders.InsideLineStyle 
= Word.WdLineStyle.wdLineStyleSingle;
newTable.Columns[1].Width = 
100f;
newTable.Columns[2].Width = 220f;
newTable.Columns[3].Width = 
105f;

//填充表格內容
newTable.Cell(1, 1).Range.Text = 
"產品詳細信息表";
newTable.Cell(1, 1).Range.Bold = 2;//設置單元格中字體為粗體 軟件開發網 
www.mscto.com
//合並單元格
newTable.Cell(1, 1).Merge(newTable.Cell(1, 
3));
WordApp.Selection.Cells.VerticalAlignment = 
Word.WdCellVerticalAlignment.wdCellAlignVerticalCenter;//垂直居中
WordApp.Selection.ParagraphFormat.Alignment 

Word.WdParagraphAlignment.wdAlignParagraphCenter;//水平居中

//填充表格內容
newTable.Cell(2, 
1).Range.Text = "產品基本信息";
newTable.Cell(2, 1).Range.Font.Color = 
Word.WdColor.wdColorDarkBlue;//設置單元格內字體顏色
//合並單元格
newTable.Cell(2, 
1).Merge(newTable.Cell(2, 3));
WordApp.Selection.Cells.VerticalAlignment = 
Word.WdCellVerticalAlignment.wdCellAlignVerticalCenter;

//填充表格內容
newTable.Cell(3, 
1).Range.Text = "品牌名稱:";
newTable.Cell(3, 2).Range.Text = 
BrandName;

//縱向合並單元格
newTable.Cell(3, 3).Select();//選中一行
object 
moveUnit = Word.WdUnits.wdLine;
object moveCount = 5;
object moveExtend = 
Word.WdMovementType.wdExtend;
WordApp.Selection.MoveDown(ref moveUnit, ref 
moveCount, ref 
moveExtend);
WordApp.Selection.Cells.Merge();
//插入圖片
string FileName = 
Picture;//圖片所在路徑
object LinkToFile = false;
object SaveWithDocument = 
true;
object Anchor = 
WordDoc.Application.Selection.Range;
WordDoc.Application.ActiveDocument.InlineShapes.AddPicture(FileName, 
ref LinkToFile, ref SaveWithDocument, ref 
Anchor);
WordDoc.Application.ActiveDocument.InlineShapes[1].Width = 
100f;//圖片寬度

WordDoc.Application.ActiveDocument.InlineShapes[1].Height = 
100f;//圖片高度
//將圖片設置為四周環繞型
Word.Shape s = 
WordDoc.Application.ActiveDocument.InlineShapes[1].ConvertToShape();
s.WrapFormat.Type 
= Word.WdWrapType.wdWrapSquare;

newTable.Cell(12, 1).Range.Text = 
"產品特殊屬性";
newTable.Cell(12, 1).Merge(newTable.Cell(12, 
3));
//在表格中增加行
WordDoc.Content.Tables[1].Rows.Add(ref 
Nothing);

WordDoc.Paragraphs.Last.Range.Text = "文檔創建時間:" + 
DateTime.Now.ToString();//“落款”
WordDoc.Paragraphs.Last.Alignment = 
Word.WdParagraphAlignment.wdAlignParagraphRight;


//文件保存
WordDoc.SaveAs(ref 
filename, ref Nothing, ref Nothing, ref Nothing, ref Nothing, ref Nothing, ref 
Nothing, ref Nothing, ref Nothing, ref Nothing, ref Nothing, ref Nothing, ref 
Nothing, ref Nothing, ref Nothing, ref Nothing);
WordDoc.Close(ref Nothing, 
ref Nothing, ref Nothing);
WordApp.Quit(ref Nothing, ref Nothing, ref 
Nothing);
message=name+"文檔生成成功,以保存到C:CNSI下";
}
catch
{
message = 
"文件導出異常!";
}
return message;
}

86.快速高效的文件加密
/*
using 
System.IO;
using System.Windows.Forms.Design;//加載System.Design.dll的.Net 
API
*/
private static int ka,kb,kc,kd;
int[] 
a={2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2};
int[] 
b={3,3,3,5,5,3,3,3,5,3,5,3,7,3,11,7,11,3,5,3,3,3,7,5,5,3,7,3,11,13,3};
int[] 
c={3,5,7,5,7,11,13,19,17,29,19,31,17,41,11,19,13,47,29,53,59,67,29,41,43,71,31,73,23,23,101};
int[] 
d={5,7,11,13,17,17,19,29,43,43,47,47,59,61,61,67,71,71,73,79,89,101,101,103,107,107,109,109,127,149,151};

private 
static int niyuan(int m,int n)
{
int 
a,b,c,d,t,yu,shang,mod;
a=m;
b=n;
mod=a;
c=0;
d=1;
while(b<0)
b+=a;
if(a%b==0 
|| b%2==0)
return 
0;
while(b!=1)
{
t=a%b;
shang=a/b;
a=b;
b=t;
yu=c-shang*d;
c=d;
d=yu;
}
if(yu<0)
yu+=mod;
return 
yu;
}

private static int GetDaysInMoths(int nMonths)
{
return 
new DateTime(DateTime.Now.Year,nMonths).DaysInMonth;
}

private static 
void init()
{
DateTime t2=new DateTime(1979,9,23);
DateTime 
t1=DateTime.Now;
TimeSpan ts=t1-t2;
Random rand=new 
Random(ts.Days*8-55);
UInt32 
r=rand.NextDouble()*(GetDaysInMonths(t2.Month)));
ka=a[r];
kb=b[r];
kc=c[r];
kd=d[r];
}

private 
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 
dlg = new FolderDialog();
dlg.DisplayDialog();
FolderDialog dlg2 = new 
FolderDialog();
dlg.DisplayDialog();
if(dlg.ShowDialog()==DialogResult.OK)
{
if(Path.GetExtension(dlg.SelectedPath).ToLower()==".txt")
{
if(dlg2.ShowDialog()==DialogResult.OK 
)
{
init();
}
}
else
{
if(dlg2.ShowDialog()==DialogResult.OK 
)
{
init();
}
}

87.從CSV文件構造XML文檔
/*
using 
System.IO;
using System.Xml.Linq;
using System.Net;
using 
System.Text.RegularExpressions;
*/
string[] 
quotes=File.ReadLines(%%1);
XElement stockQuotes=new XElement("Root",from 
quote in quotes
let fields=quote.Split(new 
char[]{',','-'},StringSplitOption.RemoveEmptyEntries)
select new 
XElement("Company",fields[0].Trim()),
new 
XElement("LastPrice",fields[2].Trim()),
new 
XElement("Time",fields[1].Trim()),
new 
XElement("HighToday",fields[3].Trim()),
stockQuotes.Save(%%2);

88.從XML文檔生成CSV文件
/*
using 
System.IO;
using System.Collections.Generic;
using System.Linq;
using 
System.Text;
using System.Xml.Linq;
*/
XElement 
black=XElement.Load(%%1);
string file=
(from elem in 
black.Elements("Player")
let statistics=elem.Element("Statistics")
select 
string.Format("{0},{1},{2},{3}",
(string)statistics.Attribute("Name"),
(string)statistics.Element("AverageAmountLost"),
(string)statistics.Element("AverageAmountWon"),
Environment.NewLine)),
Aggregate(new 
StringBuilder(),(builder,str)=>builder.Append(str),
builder=>builder.ToString());
FileInfo 
f = new FileInfo(%%2);
StreamWriter w = 
f.CreateText();
w.Write(file);
w.Flush();
w.Close();

89.模擬鍵盤輸入字符串
//using 
System.Windows.Forms;
SendKeys.SendWait(%%1);

90.提取PDF文件中的文本
xpdf
public 
OpenFileDialog ofdlg = new OpenFileDialog();//打開文件對話框
public string 
filename;

public 
Form1()
{
InitializeComponent();
}

private void 
button1_Click(object sender, EventArgs e)
{
ofdlg.Filter = 
"pdf文件(*.pdf)|*.pdf";//選擇pdf文件
if (ofdlg.ShowDialog() == 
DialogResult.OK)
{
filename = string.Format("{0}", 
ofdlg.FileName);
}
}
//傳送打開文件對話框中得到的filename來做為外部程序的參數來做轉化
private 
void button2_Click(object sender, EventArgs e)
{
Process p = new 
Process();
string path = "pdftotext.exe"; 
//進程啟用外部程序
//這個exe我放在debug文件夾下面
p.StartInfo.FileName = 
path;
p.StartInfo.Arguments = string.Format( filename + " 
-");//很怪異的一行
//參數“-”表示可以得到輸出流
p.StartInfo.UseShellExecute = 
false;
p.StartInfo.RedirectStandardInput = 
true;
p.StartInfo.RedirectStandardOutput = 
true;
p.StartInfo.RedirectStandardError = true;
p.StartInfo.CreateNoWindow 
= true;

p.Start();
string s = 
p.StandardOutput.ReadToEnd();//得到pdf文檔中的文本內容
textBox1.Text = 
s;
p.Close();
}
}

上面的程序運行后,如果是在Debug文件夾下的pdf文件就可以得到輸出,可是如果在打開文件對話框中打開我桌面上的一個pdf如:@"d:\我的文檔\test.pdf",輸出就會是空,但是如果把上面那怪異的一行改為:
C# 
code
p.StartInfo.Arguments = string.Format( @"d:\我的文檔\test.pdf" + " 
-");


程序就又會得到輸出。
呵呵,謝謝樓上的兄台,下載的xpdf中xpdftotext.exe用到的配置文件xpdfrc需要手動配置,我如果把那些字體啊,什么的映射成絕對路徑下的文件,就不會出現上面的問題,但是我把配置文件中的路徑改成了相對路徑,於是就出現了上面的問題了,看兄台能夠很輕易的就運行成功,一定是做過很多代碼的,這里還得勞煩兄台再給看一下,幫下忙,能遇到一個大神不容易,大神可不能吝嗇啊,先謝過了哈

91.操作內存映射文件
/*
using 
System.Runtime.InteropServices;
[DllImport("kernel32.dll")]
public static 
extern IntPtr CreateFileMapping(IntPtr hFile,
IntPtr lpFileMappingAttributes, 
uint flProtect,
uint dwMaximumSizeHigh,
uint dwMaximumSizeLow, string 
lpName);

[DllImport("kernel32.dll")]
public static extern IntPtr 
MapViewOfFile(IntPtr hFileMappingObject, uint
dwDesiredAccess, uint 
dwFileOffsetHigh, uint dwFileOffsetLow,
IntPtr 
dwNumberOfBytesToMap);

[DllImport("kernel32.dll")]
public static 
extern bool UnmapViewOfFile(IntPtr 
lpBaseAddress);

[DllImport("kernel32.dll")]
public static extern bool 
CloseHandle(IntPtr hObject);

[DllImport("kernel32.dll")]
public static 
extern IntPtr CreateFile(string lpFileName,
int dwDesiredAccess, FileShare 
dwShareMode, IntPtr securityAttrs,
FileMode dwCreationDisposition, int 
dwFlagsAndAttributes, IntPtr 
hTemplateFile);

[DllImport("kernel32.dll")]
public static extern uint 
GetFileSize(IntPtr hFile, IntPtr lpFileSizeHigh);

public const int 
GENERIC_READ = -2147483648; //0x80000000
public const int GENERIC_WRITE = 
0x40000000;
public const int GENERIC_EXECUTE = 0x20000000;
public const 
int GENERIC_ALL = 0x10000000;
public const int FILE_ATTRIBUTE_NORMAL = 
0x80;
public const int FILE_FLAG_SEQUENTIAL_SCAN = 0x8000000;
public const 
int INVALID_HANDLE_VALUE = -1;

public const int PAGE_NOACCESS = 
1;
public const int PAGE_READONLY = 2;
public const int PAGE_READWRITE = 
4;

public const int FILE_MAP_COPY = 1;
public const int FILE_MAP_WRITE 
= 2;
public const int FILE_MAP_READ = 4;
*/
IntPtr vFileHandle = 
CreateFile(@"c:\temp\temp.txt",
GENERIC_READ | GENERIC_WRITE, FileShare.Read 
| FileShare.Write,
IntPtr.Zero, FileMode.Open,
FILE_ATTRIBUTE_NORMAL | 
FILE_FLAG_SEQUENTIAL_SCAN, IntPtr.Zero);
if (INVALID_HANDLE_VALUE != 
(int)vFileHandle)
{
IntPtr vMappingHandle = 
CreateFileMapping(
vFileHandle, IntPtr.Zero, PAGE_READWRITE, 0, 0, 
"~MappingTemp");
if (vMappingHandle != IntPtr.Zero)
{
IntPtr vHead = 
MapViewOfFile(vMappingHandle,
FILE_MAP_COPY | FILE_MAP_READ | FILE_MAP_WRITE, 
0, 0, IntPtr.Zero);
if (vHead != IntPtr.Zero)
{
uint vSize = 
GetFileSize(vFileHandle, IntPtr.Zero);
for (int i = 0; i <= vSize / 2; 
i++)
{
byte vTemp = Marshal.ReadByte((IntPtr)((int)vHead + 
i));
Marshal.WriteByte((IntPtr)((int)vHead + 
i),
Marshal.ReadByte((IntPtr)((int)vHead + vSize - i - 
1)));
Marshal.WriteByte((IntPtr)((int)vHead + vSize - i - 1), 
vTemp);
}
UnmapViewOfFile(vHead);
}
CloseHandle(vMappingHandle);
}
CloseHandle(vFileHandle);
}

92.重定向windows控制台程序的輸出信息
//using 
System.Diagnostics;
delegate void dReadLine(string strLine);
private void 
excuteCommand(string strFile, string args, dReadLine 
onReadLine)
{
System.Diagnostics.Process p = new Process();
p.StartInfo 
= new System.Diagnostics.ProcessStartInfo();
p.StartInfo.FileName = 
strFile;
p.StartInfo.Arguments = args;
p.StartInfo.WindowStyle = 
System.Diagnostics.ProcessWindowStyle.Hidden;
p.StartInfo.RedirectStandardOutput 
= true;
p.StartInfo.UseShellExecute = false;
p.StartInfo.CreateNoWindow = 
true;
p.Start();
System.IO.StreamReader reader = 
p.StandardOutput;//截取輸出流
string line = reader.ReadLine();//每次讀取一行
while 
(!reader.EndOfStream)
{
onReadLine(line);
line = 
reader.ReadLine();
}
p.WaitForExit();
}
private void 
PrintMessage(string strLine)
{
%%2 += strLine + " 
";
}
excuteCommand("cmd", " "+%%1, new 
dReadLine(PrintMessage));

//先讀取文本中的命令假設為strCommand
string 
strCommand="ipconfig";
string strRst=string.Empty;
Process p = new 
Process();
p.StartInfo.FileName = "cmd.exe";
p.StartInfo.Arguments = "/c " 
+ strCommand;

p.StartInfo.UseShellExecute = 
false;
//重定向標准輸入
//p.StartInfo.RedirectStandardInput = 
false;
//重定向標准輸出
p.StartInfo.RedirectStandardOutput = 
true;
//重定向錯誤輸出
p.StartInfo.RedirectStandardError = 
false;
//設置不顯示窗口
p.StartInfo.CreateNoWindow = 
true;
try
{
//啟動進程
p.Start();
//停止3秒鍾
Thread.Sleep(3000);
//如果進程結束
//或者你可以等到結束再獲取
if 
(p.HasExited)
{

//從輸出流獲取執行結果
strRst = 
p.StandardOutput.ReadToEnd();
}
else
{
p.Kill();
}
}
catch 
(Exception ex)
{
strRst = 
"";
}
finally
{
p.Close();
}
//strRst即為運行后的結果,再將他寫入另一個文本

93.序列化
using 
System.Collections;
using System.Text;

namespace 
SerializableTest
{
[Serializable]
public class Book
{
public 
Book()
{
alBookReader = new ArrayList();
}

public string 
strBookName;

[NonSerialized]
public string strBookPwd;

private 
string _bookID;
public string BookID
{
get { return _bookID; }
set { 
_bookID = value; }
}

public ArrayList alBookReader;

private 
string _bookPrice;
public void SetBookPrice(string price)
{
_bookPrice 
= price;
}

public void Write()
{
Console.WriteLine("Book ID:" + 
BookID);
Console.WriteLine("Book Name:" + 
strBookName);
Console.WriteLine("Book Password:" + 
strBookPwd);
Console.WriteLine("Book Price:" + 
_bookPrice);
Console.WriteLine("Book Reader:");
for (int i = 0; i < 
alBookReader.Count; 
i++)
{
Console.WriteLine(alBookReader[i]);
}
}
}
}
using 
(FileStream fs = new FileStream(strFile, FileMode.Create))
{
Book book = 
new Book();
book.BookID = 
"1";
book.alBookReader.Add("gspring");
book.alBookReader.Add("永春");
book.strBookName 
= "C#強化";
book.strBookPwd = 
"*****";
book.SetBookPrice("50.00");
BinarySerialize serialize = new 
BinarySerialize();
serialize.Serialize(book);
}

94.反序列化
using 
System.Collections;
using System.Text;

namespace 
SerializableTest
{
[Serializable]
public class Book
{
public 
Book()
{
alBookReader = new ArrayList();
}

public string 
strBookName;

[NonSerialized]
public string strBookPwd;

private 
string _bookID;
public string BookID
{
get { return _bookID; }
set { 
_bookID = value; }
}

public ArrayList alBookReader;

private 
string _bookPrice;
public void SetBookPrice(string price)
{
_bookPrice 
= price;
}

public void Write()
{
Console.WriteLine("Book ID:" + 
BookID);
Console.WriteLine("Book Name:" + 
strBookName);
Console.WriteLine("Book Password:" + 
strBookPwd);
Console.WriteLine("Book Price:" + 
_bookPrice);
Console.WriteLine("Book Reader:");
for (int i = 0; i < 
alBookReader.Count; 
i++)
{
Console.WriteLine(alBookReader[i]);
}
}
}
}
Book 
book;
using (FileStream fs = new FileStream(strFile, 
FileMode.Open))
{
BinaryFormatter formatter = new 
BinaryFormatter();
book = (Book)formatter.Deserialize(fs);
}
return 
book;

95.報表相關
/*
using 
CrystalDecisions.CrystalReports.Engine;
using 
CrystalDecisions.Shared;
*/
2、水晶報表的兩種格式
1)pull模式,不利用DataSet,直接從數據庫中取出數據
2) 
push模式,使用DataSet,利用它進行數據的加載和處理等
3. 
水晶報表使用的庫
1)水晶報表的引擎(CREnging.dll),作用:合並數據,裝換格式
2)水晶報表設計器(CRDesigner.dll),作用:設計標題,插入數據等
3)水晶報表查看控件(CRWebFormViewer.DLL)
4)需要引入的命名空間
using 
CrystalDecisions.CrystalReports.Engine;
using 
CrystalDecisions.Shared;
4、Pull模式下使用水晶報表
1)創建rpt文件
2)拖放CrystalReportViewer
3)綁定
5、讀取水晶報表文件
private 
void ReadCRV(cryatalReportViewer crv)
{
openFileDialog dlg=new 
OpenFileDialog();
dlg.Title="打開水晶報表文件";
dlg.Filter="水晶報表文件(*.rpt)|*.rpt|所有文件|*.*";
if(dlg.showDialog()==DialogResult.OK)
{
crv.ReportSource=dlg.FileName;
}
}
6. 
B/S下讀取報表的文件
private void ReadCRV(cryatalReportViewer crv,File 
file)
{
string 
strName=file.PostedFile.FileName;
if(strName.Trim()!="")
{
crv.ReportSource=strName
Session["fileName"]=strName;
}
}
在B/S中要防止數據源的丟失
priavte 
void Page_Load(object sender,System.EventArgs 
e)
{
if(Session["fileName"]!=null)
{
crv.ReportSource=Session["fileName"].ToString();
}
}
7. 
假如直接從數據庫中讀取數據,采用PULL模式可能出現錯誤(登錄的用戶名和密碼不對)
private void 
ReadCRV(CrystalReportViewer crv,CrystalReport cr)
{
ReportDocument 
reportDoc=new 
ReportDocument();
reportDoc.Load(Server.MapPath(cr));//要加載的rpt文件的名字
//解決登錄的問題
TableLogOnInfo 
logonInfo = new TableLogOnInfo();
foreach(Table tb in 
ReportDoc.Database.Tables)
{
logonInfo=tb.LogOnInfo;
logonInfo.ConnectionInfo.ServerName="(loacl)";
logonInfo.ConnectionInfo.DatabaseName="Pubs";
logonInfo.ConnectionInfo.UserId="sa";
logonInfo.ConnectionInfo.Password="";
tb.ApplyLogOnInfo(logonInfo);
}
crv.ReportSource=reportDoc;
}
8. 
采用Push模式,直接在數據源讀取
private void BindReport(CrystalReportViewer 
crv)
{
string 
strProvider="Server=(local);DataBase=pubs;uid=sa;pwd=";
CrystalReport cr=new 
CrystalReport();
DataSet ds=new DataSet();
SqlConnection conn=new 
SqlConnection(strProvider);
conn.open();
string strSql="select * from 
jobs";
SqlDataAdapter dap=new 
SqlDataAdapter(strSql,conn);
adp.Fill(ds,"jobs");
cr.SetDataSource(ds);
crv.ReportSource=cr;
}
9. 
導出水晶報表的文件
private void ExportCrv(CrystalReport 
cr)
{
DiskFileDestionOptions dOpt=new 
DiskFileDestionOptions();
cr.ExportOptions.ExportDestinationType=ExportDestinationType.DiskFile();
cr.ExportOptions.ExportFormatType= 
ExportFormatType.PortableDocFormat;
dOpt.DiskFileName="C:\output.pdf";
cr.ExportOptions.DestinationOptions=dOpt;
cr.Export();

}
private 
void ExportCrv(CrystalReport cr,string strType,string 
strPath)
{
DiskFileDestionOptions dOpt=new 
DiskFileDestionOptions();
cr.ExportOptions.ExportDestinationType=ExportDestinationType.DiskFile();
switch(strType)
{
case 
"RTF":
cr.ExportOptions.ExportFormatType=ExportFormatType.RichText;
dOpt.DiskFileName=strPath;
break;
case 
"PDF":
cr.ExportOptions.ExportFormatType=ExportFormatType.PortableDocFormat;
dOpt.DiskFileName=strPath;
break;
case 
"DOC":
cr.ExportOptions.ExportFormatType=ExportFormatType.WordForWindows;
dOpt.DiskFileName=strPath;
break;
case 
"XLS":
cr.ExportOptions.ExportFormatType=ExportFormatType.Excel;
dOpt.DiskFileName=strPath;
break;
default;
break;

}
cr.ExportOptions.DestinationOptions=dOpt;
cr.Export();

}
10 
B/S下水晶報表的打印
priavte void PrintCRV(CrystalReport cr)
{
string 
strPrinterName=@"printName";
PageMargins 
margins=cr.PrintOptions.PageMargins;
margins.bottomMargin = 
250;
margins.leftMargin = 350;
margins.rightMargin = 
350;
margins.topMargin = 
450;
cr.PrintOptions.ApplyPageMargins(margins);
cr.PrintOptions.printerName=strPrinterName;
cr.PrintToPrinter(1,false,0,0)//參數設置為0,表示打印所用頁
}

96.全屏幕截取

/*
using 
System.Drawing.Drawing2D;
using System.Runtime.InteropServices;
using 
System.Collections;
using System.Drawing.Imaging;
using 
System.Threading;
*/
[DllImport("gdi32.dll")]
private static extern int 
BitBlt(IntPtr hdcDest,int nXDest,int nYDest,int nWidth,int nHeight,IntPtr 
hdcSrc,int nXSrc,int nYSrc,UInt32 
dwRop);
//this.Hide();//如果你不想截取的圖象中有此應用程序
//Thread.Sleep(1000);
Rectangle 
rect = new Rectangle();
rect = 
Screen.GetWorkingArea(this);//獲得當前屏幕的大小
Graphics g = 
this.CreateGraphics();
//創建一個以當前屏幕為模板的圖象
Image myimage = new 
Bitmap(rect.Width, rect.Height, g);
//第二種得到全屏坐標的方法
// Image myimage = new 
Bitmap(Screen.PrimaryScreen.Bounds.Width,Screen.PrimaryScreen.Bounds.Height,g);
//創建以屏幕大小為標准的位圖
Graphics 
gg = Graphics.FromImage(myimage);
IntPtr dc = g.GetHdc();//得到屏幕的DC
IntPtr 
dcdc = gg.GetHdc();//得到Bitmap的DC
BitBlt(dcdc, 0, 0, rect.Width, rect.Height, 
dc, 0, 0, 
13369376);
//調用此API函數,實現屏幕捕獲
g.ReleaseHdc(dc);//釋放掉屏幕的DC
gg.ReleaseHdc(dcdc);//釋放掉Bitmap的DC
myimage.Save(Application.StartupPath 
+ @"\bob.jpg", 
ImageFormat.Jpeg);//以JPG文件格式來保存
this.Show();

97.區域截屏
/*
using 
System.Drawing.Drawing2D;
using System.Runtime.InteropServices;
using 
System.Collections;
using System.Drawing.Imaging;
using 
System.Threading;
[DllImport("gdi32.dll")]
public static extern IntPtr 
CreateDC(
string lpszDriver, // driver name
string lpszDevice, // device 
name
string lpszOutput, // not used; should be NULL
Int64 lpInitData // 
optional printer data
);

[DllImport("gdi32.dll")]
public static 
extern IntPtr CreateCompatibleDC(
IntPtr hdc // handle to 
DC
);

[DllImport("gdi32.dll")]
public static extern int 
GetDeviceCaps(
IntPtr hdc, // handle to DC
GetDeviceCapsIndex nIndex // 
index of capability
);

[DllImport("gdi32.dll")]
public static 
extern IntPtr CreateCompatibleBitmap(
IntPtr hdc, // handle to DC
int 
nWidth, // width of bitmap, in pixels
int nHeight // height of bitmap, in 
pixels
);

[DllImport("gdi32.dll")]
public static extern IntPtr 
SelectObject(
IntPtr hdc, // handle to DC
IntPtr hgdiobj // handle to 
object
);

[DllImport("gdi32.dll")]
public static extern int 
BitBlt(
IntPtr hdcDest, // handle to destination DC
int nXDest, // x-coord 
of destination upper-left corner
int nYDest, // y-coord of destination 
upper-left corner
int nWidth, // width of destination rectangle
int 
nHeight, // height of destination rectangle
IntPtr hdcSrc, // handle to 
source DC
int nXSrc, // x-coordinate of source upper-left corner
int 
nYSrc, // y-coordinate of source upper-left corner
UInt32 dwRop // raster 
operation code
);

[DllImport("gdi32.dll")]
public static extern int 
DeleteDC(
IntPtr hdc // handle to DC
);
*/
public static Bitmap 
GetPartScreen(Point P1,Point P2,bool Full)
{
IntPtr 
hscrdc,hmemdc;
IntPtr hbitmap,holdbitmap;
int 
nx,ny,nx2,ny2;
nx=ny=nx2=ny2=0;
int nwidth, nheight;
int xscrn, 
yscrn;
hscrdc = CreateDC("DISPLAY", null, null, 0);//創建DC句柄
hmemdc = 
CreateCompatibleDC(hscrdc);//創建一個內存DC
xscrn = GetDeviceCaps(hscrdc, 
GetDeviceCapsIndex.HORZRES);//獲取屏幕寬度
yscrn = GetDeviceCaps(hscrdc, 
GetDeviceCapsIndex.VERTRES);//獲取屏幕高度
if(Full)//如果是截取整個屏幕
{
nx = 
0;
ny = 0;
nx2 = xscrn;
ny2 = yscrn;
}
else
{
nx = 
P1.X;
ny = P1.Y;
nx2 =P2.X;
ny2 =P2.Y;
//檢查數值合法性
if(nx<0)nx = 
0;
if(ny<0)ny = 0;
if(nx2>xscrn)nx2 = xscrn;
if(ny2>yscrn)ny2 
= yscrn;
}
nwidth = nx2 - nx;//截取范圍的寬度
nheight = ny2 - 
ny;//截取范圍的高度
hbitmap = CreateCompatibleBitmap(hscrdc, nwidth, 
nheight);//從內存DC復制到hbitmap句柄
holdbitmap = SelectObject(hmemdc, 
hbitmap);
BitBlt(hmemdc, 0, 0, nwidth, nheight,hscrdc, nx, 
ny,(UInt32)0xcc0020);
hbitmap = SelectObject(hmemdc, 
holdbitmap);
DeleteDC(hscrdc);//刪除用過的對象
DeleteDC(hmemdc);//刪除用過的對象
return 
Bitmap.FromHbitmap(hbitmap);//用Bitmap.FromHbitmap從hbitmap返回Bitmap
}

98.計算文件MD5值
/*
using 
System.IO;
using System.Security.Cryptography;
*/
string path = 
%%1;
FileStream fs = new 
FileStream(path,FileMode.Open,FileAccess.Read);
MD5CryptoServiceProvider md5 
= new MD5CryptoServiceProvider();
byte [] md5byte = 
md5.ComputeHash(fs);
int i,j;
StringBuilder sb = new 
StringBuilder(16);
foreach (byte b in md5byte)
{
i = 
Convert.ToInt32(b);
j = i >> 
4;
sb.Append(Convert.ToString(j,16));
j = ((i << 4) & 0x00ff) 
>> 4;
sb.Append(Convert.ToString(j,16));
}
string 
%%2=sb.ToString();

99.計算獲取文件夾中文件的MD5值
/*
using System.IO;
using 
System.Security.Cryptography;
using System.Collections;
*/
bool 
b=false;
string path = (%%2.LastIndexOf(Path.DirectorySeparatorChar) == 
%%2.Length - 1) ? %%2 : %%2 + Path.DirectorySeparatorChar;
string parent = 
Path.GetDirectoryName(%%1);
Directory.CreateDirectory(path + 
Path.GetFileName(%%1));
DirectoryInfo dir = new 
DirectoryInfo((%%1.LastIndexOf(Path.DirectorySeparatorChar) == %%1.Length - 1) ? 
%%1 : %%1 + Path.DirectorySeparatorChar);
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 (b && f == null)
{
DirectoryInfo d = tmp as 
DirectoryInfo;
Directory.CreateDirectory(d.FullName.Replace((parent.LastIndexOf(Path.DirectorySeparatorChar) 
== parent.Length - 1) ? parent : parent + Path.DirectorySeparatorChar, 
path));
foreach (FileSystemInfo fi in 
d.GetFileSystemInfos())
{
Folders.Enqueue(fi);
}
}
else
{
FileStream 
fs = new 
FileStream(f,FileMode.Open,FileAccess.Read);
MD5CryptoServiceProvider md5 = 
new MD5CryptoServiceProvider();
byte [] md5byte = md5.ComputeHash(fs);
int 
i,j;
StringBuilder sb = new StringBuilder(16);
foreach (byte b in 
md5byte)
{
i = Convert.ToInt32(b);
j = i >> 
4;
sb.Append(Convert.ToString(j,16));
j = ((i << 4) & 0x00ff) 
>> 4;
sb.Append(Convert.ToString(j,16));
}
string 
%%3=sb.ToString();
}
}

100.復制一個目錄下所有文件到一個文件夾中
/*
using 
System.IO;
using System.Collections;
*/
string path = 
(%%2.LastIndexOf(Path.DirectorySeparatorChar) == %%2.Length - 1) ? %%2 : 
%%2+Path.DirectorySeparatorChar;
string parent = 
Path.GetDirectoryName(%%1);
Directory.CreateDirectory(path + 
Path.GetFileName(%%1));
DirectoryInfo dir = new 
DirectoryInfo((%%1.LastIndexOf(Path.DirectorySeparatorChar) == %%1.Length - 1) ? 
%%1 : %%1 + Path.DirectorySeparatorChar);
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;
foreach (FileSystemInfo fi in 
d.GetFileSystemInfos())
{
Folders.Enqueue(fi);
}
}
else
{
f.CopyTo(path+f.Name);
}
}

101.移動一個目錄下所有文件到一個文件夾中
/*
using 
System.IO;
using System.Collections;
*/
string path = 
(%%2.LastIndexOf(Path.DirectorySeparatorChar) == %%2.Length - 1) ? %%2 : 
%%2+Path.DirectorySeparatorChar;
string parent = 
Path.GetDirectoryName(%%1);
Directory.CreateDirectory(path + 
Path.GetFileName(%%1));
DirectoryInfo dir = new 
DirectoryInfo((%%1.LastIndexOf(Path.DirectorySeparatorChar) == %%1.Length - 1) ? 
%%1 : %%1 + Path.DirectorySeparatorChar);
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;
foreach (FileSystemInfo fi in 
d.GetFileSystemInfos())
{
Folders.Enqueue(fi);
}
}
else
{
f.MoveTo(path+f.Name);
}
}

102.文件RSA高級加密
/*
using 
System.IO;
using System.Security.Cryptography;
private 
RSACryptoServiceProvider _rsa;
*/
FileStream fin=new 
FileStream(%%1,FileMode.Open,FileAccess.Read);
FileStream fout=new 
FileStream(%%2,FileMode.OpenOrCreate,FileAccess.Write);
byte[] readBuffer=new 
byte[128];
fin.Read(readBuffer,0,readBuffer.Length);
byte[] 
encryptedBuffer=_rsa.Encrypt(readBuffer,true);
_rsa.Clear();

103.計算文件大小
/*
using 
System.IO;
private const long KB=1024;
private const long 
MB=1024*KB;
private const long GB=1024*MB;
*/
FileInfo fi = new 
FileInfo(%%1);
long filesize= fi.Length;
string 
showsize;
if(filesize>=GB)
showsize.format("%0.2f 
GB",(double)filesize/GB);
else if(filesize>=MB)
showsize.format("%0.2f 
MB",(double)filesize/MB);
else if(filesize>=KB)
showsize.format("%0.2f 
KB",(double)filesize/KB);
else if(filesize>1)
showsize.format("%ld 
Bytes",filesize);
else
showsize="1 Byte";
string 
%%2=showsize;

104.計算文件夾的大小
/*
using System.IO;
private const 
long KB=1024;
private const long MB=1024*KB;
private const long 
GB=1024*MB;
*/
private static long FolderFileSize(string 
path)
{
long size = 0;
try
{
FileInfo [] files = (new 
DirectoryInfo(path)).GetFiles();
foreach(FileInfo file in files)
{
size 
+= file.Length;
}
}
catch(Exception 
ex)
{
MessageBox.Show(ex.Message);
}
return 
size;
}

private static long FolderSize(string path)
{
long Fsize 
= 0;
try
{
Fsize = FolderFileSize(path);
DirectoryInfo [] folders = 
(new DirectoryInfo(path)).GetDirectories();
foreach(DirectoryInfo folder in 
folders)
Fsize += FolderSize(folder.FullName);
}
catch(Exception 
ex)
{
MessageBox.Show(ex.Message);
}
return Fsize;
}
long 
filesize= FolderSize(%%1);
string 
showsize;
if(filesize>=GB)
showsize.format("%0.2f 
GB",(double)filesize/GB);
else if(filesize>=MB)
showsize.format("%0.2f 
MB",(double)filesize/MB);
else if(filesize>=KB)
showsize.format("%0.2f 
KB",(double)filesize/KB);
else if(filesize>1)
showsize.format("%ld 
Bytes",filesize);
else
showsize="1 Byte";
string 
%%2=showsize;

105.快速獲得當前程序的驅動器、路徑、文件名和擴展名
//using 
System.IO;
DirectoryInfo dires= new 
DirectoryInfo(Application.StartupPath);
string strQDQ = null;//驅動器
strQDQ 
= dires.Root.ToString();
string strPath 
=Application.ExecutablePath;//路徑

string FName = null;//文件名
string 
FNameExt = null;//擴展名
FileInfo FileIno = new FileInfo(strPath);
FName = 
FileIno.Name;
FNameExt = 
FileIno.Extension;

106.磁盤剩余空間計算
/*
using 
System.Runtime.InteropServices;
//第一種
[DllImport("kernel32")]
public 
static extern bool GetDiskFreeSpaceEx(string Path,out long
bytesAvail, out 
long bytesOnDisk, out long freeBytesOnDisk);

long bytesAvail, 
bytesOnDisk,freeBytesOnDisk,lpTotalNumberOfClusters;
//lpRootPathName 
String,不包括卷名的一個磁盤根路徑
//lpSectorsPerCluster 
Long,用於裝載一個簇內扇區數的變量
//lpBytesPerSector 
Long,用於裝載一個扇區內字節數的變量
//lpNumberOfFreeClusters 
Long,用於裝載磁盤上剩余簇數的變量
//lpTtoalNumberOfClusters 
Long,用於裝載磁盤上總簇數的變量
*/
string tempImagePath = 
Application.StartupPath;//取出應用安裝的目錄。
GetDiskFreeSpaceEx(tempImagePath, out 
bytesAvail, out bytesOnDisk, out freeBytesOnDisk);
textBox1.Text = 
(freeBytesOnDisk/1024/1024).ToString();

//第二種 
引用System.Management
//using System.Management;
ManagementClass diskClass = 
new ManagementClass("Win32_LogicalDisk");
ManagementObjectCollection 
disks=diskClass.GetInstances();
System.UInt64 
space=UInt64.MinValue;
foreach(ManagementObject disk in 
disks)
{
if((disk["Name"]).ToString() == "C:")
space = 
(System.UInt64)(disk["FreeSpace"]);
}
//第三種 framework 中已經有類了, 不需要調用 
API
//using System.IO;
long x = new DriveInfo(%%1).AvailableFreeSpace; 
//"C"
string showsize;
if (x >= GB)
showsize.format("%0.2f GB", 
(double)x / GB);
else if (x >= MB)
showsize.format("%0.2f MB", 
(double)x / MB);
else if (x >= KB)
showsize.format("%0.2f KB", 
(double)x / KB);
else if (x > 1)
showsize.format("%ld Bytes", 
x);
else
showsize = "1 Byte";
return 
showsize;

107.獲取當前程序進程ID
//using System.Diagnostics;
int %%1 = 
Process.GetCurrentProcess().Id;

108.全盤搜索文件
/*
using 
System.Text;
using System.IO;
*/
string strFileName;
public string 
StrFileName{get { return strFileName; }set { strFileName = value; }}
delegate 
void Temp(string fileName);
delegate void ShowProgressDelegate(string 
fileName, string filePath, IList<IlsitFileFindModleClass> 
objIlist);
IList<IlsitFileFindModleClass> objIlist;
public void 
GetFoldersPath(){
if (GridSearch.InvokeRequired == 
false){}
else{
objIlist = new 
List<IlsitFileFindModleClass>();
string retStr = null;
DriveInfo[] 
allDrives = DriveInfo.GetDrives();//檢索計算機上的所有邏輯驅動器的驅動器名稱
foreach (DriveInfo 
driPath in 
allDrives){//循環輸出各分區的信息
FileSeach(driPath.Name);
}
}
}
public 
void GetFoldersPath(string root){
if (GridSearch.InvokeRequired == false) { 
}
else { objIlist = new List<IlsitFileFindModleClass>(); 
FileSeach(root); }
}
public void FileSeach(string root){
string 
strFileNameTemp = StrFileName;
Stack<string> dirs = new 
Stack<string>(20);
if 
(!System.IO.Directory.Exists(root))
return;
dirs.Push(root);
while 
(dirs.Count > 0){
string currentDir = dirs.Pop();
string[] 
subDirs;
try{
subDirs = 
System.IO.Directory.GetDirectories(currentDir);
}
catch 
(UnauthorizedAccessException e) { continue; }
catch 
(System.IO.DirectoryNotFoundException e) { continue; }
Temp temp=new 
Temp(Testll);
label2.Invoke(temp, new object[] { currentDir 
});
try{
string[] filesTemp = System.IO.Directory.GetFiles(currentDir, 
StrFileName + ".*");
if (filesTemp.Length > 0){
objIlist.Add(new 
IlsitFileFindModleClass(strFileNameTemp, currentDir + "\\" + strFileNameTemp + 
".*"));
ShowProgressDelegate objTemp = new 
ShowProgressDelegate(test);
BeginInvoke(objTemp, new object[] { 
strFileNameTemp, currentDir + "\\" + strFileNameTemp + ".*", objIlist 
});
continue;
}
}
catch (UnauthorizedAccessException e) { continue; 
}
catch (System.IO.DirectoryNotFoundException e) { continue; }
foreach 
(string str in subDirs)
dirs.Push(str);
}
}
StrFileName 
=%%1;
MethodInvoker mi = new 
MethodInvoker(GetFoldersPath);
mi.BeginInvoke(null, null);


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM