1.创建文件夹
//using System.IO;
Directory.CreateDirectory(%%
1);
2.创建文件
//using System.IO;
File.Create(%%
1);
3.删除文件
//using System.IO;
File.Delete(%%
1);
4.删除文件夹
//using System.IO;
Directory.Delete(%%
1);
5.删除一个目录下所有的文件夹
//using System.IO;
foreach (
string dirStr
in Directory.GetDirectories(%%
1))
{
DirectoryInfo dir =
new DirectoryInfo(dirStr);
ArrayList folders=
new ArrayList();
FileSystemInfo[] fileArr =
dir.GetFileSystemInfos();
for (
int i =
0; i < folders.Count; i++
)
{
FileInfo f = folders[i]
as FileInfo;
if (f ==
null)
{
DirectoryInfo d = folders[i]
as DirectoryInfo;
d.Delete();
}
}
}
6.清空文件夹
//using System.IO;
Directory.Delete(%%
1,
true);
Directory.CreateDirectory(%%
1);
7.读取文件
//using System.IO;
StreamReader s = File.OpenText(%%
1);
string %%
2 =
null;
while ((%%
2 = s.ReadLine()) !=
null){
%%
3
}
s.Close();
8.写入文件
//using System.IO;
FileInfo f =
new FileInfo(%%
1);
StreamWriter w =
f.CreateText();
w.WriteLine(%%
2);
w.Close();
9.写入随机文件
//using System.IO;
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
}
13.复制文件夹
string path = (%%
2.LastIndexOf(
"\") == %%2.Length - 1) ? %%2 : %%2+"\
";
string parent = Path.GetDirectoryName(%%
1);
Directory.CreateDirectory(path + Path.GetFileName(%%
1));
DirectoryInfo dir =
new DirectoryInfo((%%
1.LastIndexOf(
"\") == %%1.Length - 1) ? %%1 : %%1 + "\
");
FileSystemInfo[] fileArr =
dir.GetFileSystemInfos();
Queue<FileSystemInfo> Folders =
new Queue<FileSystemInfo>
(dir.GetFileSystemInfos());
while (Folders.Count>
0)
{
FileSystemInfo tmp =
Folders.Dequeue();
FileInfo f = tmp
as FileInfo;
if (f ==
null)
{
DirectoryInfo d = tmp
as DirectoryInfo;
Directory.CreateDirectory(d.FullName.Replace((parent.LastIndexOf("\") == parent.Length - 1) ? parent : parent + "\
", path));
foreach (FileSystemInfo fi
in d.GetFileSystemInfos())
{
Folders.Enqueue(fi);
}
}
else
{
f.CopyTo(f.FullName.Replace(parent, path));
}
}
14.复制目录下所有的文件夹到另一个文件夹下
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.移动文件夹
string filename = Path.GetFileName(%%
1);
string path=(%%
2.LastIndexOf(
"\") == %%2.Length - 1) ? %%2 : %%2 + "\
";
if (Path.GetPathRoot(%%
1) == Path.GetPathRoot(%%
2))
Directory.Move(%%
1, path +
filename);
else
{
string parent = Path.GetDirectoryName(%%
1);
Directory.CreateDirectory(path + Path.GetFileName(%%
1));
DirectoryInfo dir =
new DirectoryInfo((%%
1.LastIndexOf(
"\") == %%1.Length - 1) ? %%1 : %%1 + "\
");
FileSystemInfo[] fileArr =
dir.GetFileSystemInfos();
Queue<FileSystemInfo> Folders =
new Queue<FileSystemInfo>
(dir.GetFileSystemInfos());
while (Folders.Count >
0)
{
FileSystemInfo tmp =
Folders.Dequeue();
FileInfo f = tmp
as FileInfo;
if (f ==
null)
{
DirectoryInfo d = tmp
as DirectoryInfo;
DirectoryInfo dpath =
new DirectoryInfo(d.FullName.Replace((parent.LastIndexOf(
"\") == parent.Length - 1) ? parent : parent + "\
", path));
dpath.Create();
foreach (FileSystemInfo fi
in d.GetFileSystemInfos())
{
Folders.Enqueue(fi);
}
}
else
{
f.MoveTo(f.FullName.Replace(parent, path));
}
}
Directory.Delete(%%
1,
true);
}
16.移动目录下所有的文件夹到另一个目录下
string filename = Path.GetFileName(%%
1);
if (Path.GetPathRoot(%%
1) == Path.GetPathRoot(%%
2))
foreach (
string dir
in Directory.GetDirectories(%%
1))
Directory.Move(dir, Path.Combine(%%
2,filename));
else
{
foreach (
string dir2
in Directory.GetDirectories(%%
1))
{
string parent =
Path.GetDirectoryName(dir2);
Directory.CreateDirectory(Path.Combine(%%
2, Path.GetFileName(dir2)));
string dir = (dir2.LastIndexOf(
"\") == dir2.Length - 1) ? dir2 : dir2 + "\
";
DirectoryInfo dirdir =
new DirectoryInfo(dir);
FileSystemInfo[] fileArr =
dirdir.GetFileSystemInfos();
Queue<FileSystemInfo> Folders =
new Queue<FileSystemInfo>
(dirdir.GetFileSystemInfos());
while (Folders.Count >
0)
{
FileSystemInfo tmp =
Folders.Dequeue();
FileInfo f = tmp
as FileInfo;
if (f ==
null)
{
DirectoryInfo d = tmp
as DirectoryInfo;
DirectoryInfo dpath =
new DirectoryInfo(d.FullName.Replace((parent.LastIndexOf(
"\") == parent.Length - 1) ? parent : parent + "\
", %%2));
dpath.Create();
foreach (FileSystemInfo fi
in d.GetFileSystemInfos())
{
Folders.Enqueue(fi);
}
}
else
{
f.MoveTo(f.FullName.Replace(parent, %%
2));
}
}
dirdir.Delete(true);
}
}
17.以一个文件夹的框架在另一个目录创建文件夹和空文件
bool b=
false;
string path = (%%
2.LastIndexOf(
"\") == %%2.Length - 1) ? %%2 : %%2 + "\
";
string parent = Path.GetDirectoryName(%%
1);
Directory.CreateDirectory(path + Path.GetFileName(%%
1));
DirectoryInfo dir =
new DirectoryInfo((%%
1.LastIndexOf(
"\") == %%1.Length - 1) ? %%1 : %%1 + "\
");
FileSystemInfo[] fileArr =
dir.GetFileSystemInfos();
Queue<FileSystemInfo> Folders =
new Queue<FileSystemInfo>
(dir.GetFileSystemInfos());
while (Folders.Count >
0)
{
FileSystemInfo tmp =
Folders.Dequeue();
FileInfo f = tmp
as FileInfo;
if (f ==
null)
{
DirectoryInfo d = tmp
as DirectoryInfo;
Directory.CreateDirectory(d.FullName.Replace((parent.LastIndexOf("\") == parent.Length - 1) ? parent : parent + "\
", path));
foreach (FileSystemInfo fi
in d.GetFileSystemInfos())
{
Folders.Enqueue(fi);
}
}
else
{
if(b) File.Create(f.FullName.Replace(parent, path));
}
}
18.复制文件
//using System.IO;
File.Copy(%%
1,%%
2);
19.复制一个文件夹下所有的文件到另一个目录
//using System.IO;
foreach (
string fileStr
in Directory.GetFiles(%%
1))
File.Copy((%%
1.LastIndexOf(
"\") == %%1.Length - 1) ? %%1 +Path.GetFileName(fileStr): %%1 + "\
"+Path.GetFileName(fileStr),(%%2.LastIndexOf("\\
") == %%2.Length - 1) ? %%2 +Path.GetFileName(fileStr): %%2 + "\
"+Path.GetFileName(fileStr));
20.提取扩展名
//using System.IO;
string %%
2=Path.GetExtension(%%
1);
21.提取文件名
//using System.IO;
string %%
2=Path.GetFileName(%%
1);
22.提取文件路径
//using System.IO;
string %%
2=Path.GetDirectoryName(%%
1);
23.替换扩展名
//using System.IO;
File.ChangeExtension(%%
1,%%
2);
24.追加路径
//using System.IO;
string %%
3=Path.Combine(%%
1,%%
2);
25.移动文件
//using System.IO;
File.Move(%%
1,%%
2+
"\"+file.getname(%%1));
26.移动一个文件夹下所有文件到另一个目录
foreach (
string fileStr
in Directory.GetFiles(%%
1))
File.Move((%%
1.LastIndexOf(
"\") == %%1.Length - 1) ? %%1 +Path.GetFileName(fileStr): %%1 + "\
"+Path.GetFileName(fileStr),(%%2.LastIndexOf("\\
") == %%2.Length - 1) ? %%2 +Path.GetFileName(fileStr): %%2 + "\
"+Path.GetFileName(fileStr));
27.指定目录下搜索文件
string fileName=%%
1;
string dirName=%%
2;
DirectoryInfo dirc=
new DirectoryInfo(dirName);
foreach(FileInfo file
in dirc.GetFiles()) {
if(file.Name.IndexOf(fileName)>-
1)
return file.FullName;
}
foreach(DirectoryInfo dir
in dirc.GetDirectories()) {
return GetFile(fileName,dir.FullName);
}
return "找不到指定的文件";
}
28.打开对话框
OpenFileDialog penFileDialog=
new OpenFileDialog();
openFileDialog.InitialDirectory=
"c:\\\\";
//注意这里写路径时要用c:\\\\而不是c:\\
openFileDialog.Filter=
"文本文件|*.*|C#文件|*.cs|所有文件|*.*";
openFileDialog.RestoreDirectory=
true;
openFileDialog.FilterIndex=
1;
if (openFileDialog.ShowDialog()==
DialogResult.OK) {
fName=
openFileDialog.FileName;
File fileOpen=
new File(fName);
isFileHaveName=
true;
%%
1=
fileOpen.ReadFile();
%%
1.AppendText(
"");
}
29.文件分割
//using System.IO;
FileStream fsr =
new FileStream(%%
1, FileMode.Open, FileAccess.Read);
byte[] btArr =
new byte[fsr.Length];
fsr.Read(btArr, 0, btArr.Length);
fsr.Close();
string strFileName=%%
1.Substring(%%
1.LastIndexOf(
"\")+1);
FileStream fsw =
new FileStream(%%
2 + strFileName +
"1", FileMode.Create, FileAccess.Write);
fsw.Write(btArr, 0, btArr.Length/
2);
fsw.Close();
fsw =
new FileStream(%%
2 + strFileName +
"2", FileMode.Create, FileAccess.Write);
fsw.Write(btArr, btArr.Length/
2, btArr.Length-btArr.Length/
2);
fsw.Close();
30.文件合并
//using System.IO;
string strFileName = %%
1.Substring(%%
1.LastIndexOf(
"\") + 1);
FileStream fsr1 =
new FileStream(%%
2 + strFileName +
"1", FileMode.Open, FileAccess.Read);
FileStream fsr2 =
new FileStream(%%
2 + strFileName +
"2", FileMode.Open, FileAccess.Read);
byte[] btArr =
new byte[fsr1.Length+
fsr2.Length];
fsr1.Read(btArr, 0, Convert.ToInt32(fsr1.Length));
fsr2.Read(btArr, Convert.ToInt32(fsr1.Length), Convert.ToInt32(fsr2.Length));
fsr1.Close();fsr2.Close();
FileStream fsw =
new FileStream(%%
2 +
strFileName, FileMode.Create, FileAccess.Write);
fsw.Write(btArr, 0, btArr.Length);
fsw.Close();
31.文件简单加密
//using System.IO;
//读文件
FileStream fsr =
new FileStream(%%
1, FileMode.Open, FileAccess.Read);
byte[] btArr =
new byte[fsr.Length];
fsr.Read(btArr, 0, btArr.Length);
fsr.Close();
for (
int i =
0; i < btArr.Length; i++){
//加密
int ibt =
btArr[i];
ibt +=
100;
ibt %=
256;
btArr[i] =
Convert.ToByte(ibt);
}
//写文件
string strFileName = Path.GetExtension(%%
1);
FileStream fsw =
new FileStream(%%
2+
"/" +
"enc_" +
strFileName, FileMode.Create, FileAccess.Write);
fsw.Write(btArr, 0, btArr.Length);
fsw.Close();
32.文件简单解密
//using System.IO;
FileStream fsr =
new FileStream(%%
1, FileMode.Open, FileAccess.Read);
byte[] btArr =
new byte[fsr.Length];
fsr.Read(btArr, 0, btArr.Length);
fsr.Close();
for (
int i =
0; i < btArr.Length; i++){
//解密
int ibt =
btArr[i];
ibt -=
100;
ibt +=
256;
ibt %=
256;
btArr[i] =
Convert.ToByte(ibt);
}
//写文件
string strFileName = Path.GetExtension(%%
1);
FileStream fsw =
new FileStream(%%
2 +
"/" +
strFileName, FileMode.Create, FileAccess.Write);
fsw.Write(btArr, 0, btArr.Length);
fsw.Close();
33.读取ini文件属性
//using System.Runtime.InteropServices;
//[DllImport("kernel32")]//返回取得字符串缓冲区的长度
//private static extern long GetPrivateProfileString(string section,string key, string def,StringBuilder retVal,int size,string filePath);
string Section=%%
1;
string Key=%%
2;
string NoText=%%
3;
string iniFilePath=
"Setup.ini";
string %%
4=
String.Empty;
if(File.Exists(iniFilePath)){
StringBuilder temp =
new StringBuilder(
1024);
GetPrivateProfileString(Section,Key,NoText,temp,1024,iniFilePath);
%%
4=
temp.ToString();
}
34.合并一个目录下所有的文件
//using System.IO;
FileStream fsw =
new FileStream(%%
2, FileMode.Create, FileAccess.Write);
foreach (
string fileStr
in Directory.GetFiles(%%
1))
{
FileStream fsr1 =
new FileStream(fileStr, FileMode.Open, FileAccess.Read);
byte[] btArr =
new byte[fsr1.Length];
fsr1.Read(btArr, 0, Convert.ToInt32(fsr1.Length));
fsr1.Close();
fsw.Write(btArr, 0, btArr.Length);
}
fsw.Close();
35.写入ini文件属性
//using System.Runtime.InteropServices;
//[DllImport("kernel32")]//返回0表示失败,非0为成功
//private static extern long WritePrivateProfileString(string section,string key, string val,string filePath);
string Section=%%
1;
string Key=%%
2;
string Value=%%
3;
string iniFilePath=
"Setup.ini";
bool %%
4=
false;
if(File.Exists(iniFilePath))
{
long pStation =
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_x(%%
3);
XmlElement book=doc.createElement_x(%%
5);
XmlElement port=doc.createElement_x(%%
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压缩文件
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解压缩
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压缩文件夹
private void CreateCompressFile(Stream source,
string destinationName)
{
using (Stream destination =
new FileStream(destinationName, FileMode.Create, FileAccess.Write))
{
using (GZipStream utput =
new GZipStream(destination, CompressionMode.Compress))
{
byte[] bytes =
new byte[
4096];
int n;
while ((n = source.Read(bytes,
0, bytes.Length)) !=
0)
{
output.Write(bytes, 0, n);
}
}
}
}
ArrayList list =
new ArrayList();
foreach (
string f
in Directory.GetFiles(%%
1))
{
byte[] destBuffer =
File.ReadAllBytes(f);
SerializeFileInfo sfi =
new SerializeFileInfo(f, destBuffer);
list.Add(sfi);
}
IFormatter formatter =
new BinaryFormatter();
using (Stream s =
new MemoryStream())
{
formatter.Serialize(s, list);
s.Position =
0;
CreateCompressFile(s, %%
2);
}
[Serializable]
class SerializeFileInfo
{
public SerializeFileInfo(
string name,
byte[] buffer)
{
fileName =
name;
fileBuffer =
buffer;
}
string fileName;
public string FileName
{
get
{
return fileName;
}
}
byte[] fileBuffer;
public byte[] FileBuffer
{
get
{
return fileBuffer;
}
}
}
43.递归删除目录下的文件
//using System.IO;
DirectoryInfo DInfo=
new DirectoryInfo(%%
1);
FileSystemInfo[] FSInfo=
DInfo.GetFileSystemInfos();
for(
int i=
0;i<FSInfo.Length;i++
)
{
FileInfo FInfo=
new FileInfo(%%
1+
FSInfo[i].ToString());
FInfo.Delete();
}
44.验证DTD
XmlReaderSettings settings =
new XmlReaderSettings();
settings.ProhibitDtd =
false;
settings.ValidationType =
ValidationType.DTD;
settings.ValidationEventHandler +=
new ValidationEventHandler(ValidationCallBack);
// Create the XmlReader object.
XmlReader reader = XmlReader.Create(
"my book.xml", settings);
// Parse the file.
while (reader.Read());
// Display any validation errors.
private static void ValidationCallBack(
object sender, ValidationEventArgs e)
{
Console.WriteLine("Validation Error: {0}", e.Message);
}
45.Schema 验证
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
//Traditionally grep stands for "Global Regular Expression Print".
//Global means that an entire file is searched.
//Regular Expression means that a regular expression string is used to establish a search pattern.
//Print means that the command will display its findings.
//Simply put, grep searches an entire file for the pattern you want and displays its findings.
//
//The use syntax is different from the traditional Unix syntax, I prefer a syntax similar to
//csc, the C# compiler.
//
// grep [/h|/H] - Usage Help
//
// grep [/c] [/i] [/l] [/n] [/r] /E:reg_exp /F:files
//
// /c - print a count of matching lines for each input file;
// /i - ignore case in pattern;
// /l - print just files (scanning will stop on first match);
// /n - prefix each line of output with line number;
// /r - recursive search in subdirectories;
//
// /E:reg_exp - the Regular Expression used as search pattern. The Regular Expression can be delimited by
// quotes like "..." and '...' if you want to include in it leading or trailing blanks;
//
// /F:files - the list of input files. The files can be separated by commas as in /F:file1,file2,file3
//and wildcards can be used for their specification as in /F:*file?.txt;
//
//Example:
//
// grep /c /n /r /E:" C Sharp " /F:*.cs
//Option Flags
private bool m_bRecursive;
private bool m_bIgnoreCase;
private bool m_bJustFiles;
private bool m_bLineNumbers;
private bool m_bCountLines;
private string m_strRegEx;
private string m_strFiles;
//ArrayList keeping the Files
private ArrayList m_arrFiles =
new ArrayList();
//Properties
public bool Recursive
{
get {
return m_bRecursive; }
set { m_bRecursive =
value; }
}
public bool IgnoreCase
{
get {
return m_bIgnoreCase; }
set { m_bIgnoreCase =
value; }
}
public bool JustFiles
{
get {
return m_bJustFiles; }
set { m_bJustFiles =
value; }
}
public bool LineNumbers
{
get {
return m_bLineNumbers; }
set { m_bLineNumbers =
value; }
}
public bool CountLines
{
get {
return m_bCountLines; }
set { m_bCountLines =
value; }
}
public string RegEx
{
get {
return m_strRegEx; }
set { m_strRegEx =
value; }
}
public string Files
{
get {
return m_strFiles; }
set { m_strFiles =
value; }
}
//Build the list of Files
private void GetFiles(String strDir, String strExt,
bool bRecursive)
{
//search pattern can include the wild characters '*' and '?'
string[] fileList =
Directory.GetFiles(strDir, strExt);
for(
int i=
0; i<fileList.Length; i++
)
{
if(File.Exists(fileList[i]))
m_arrFiles.Add(fileList[i]);
}
if(bRecursive==
true)
{
//Get recursively from subdirectories
string[] dirList =
Directory.GetDirectories(strDir);
for(
int i=
0; i<dirList.Length; i++
)
{
GetFiles(dirList[i], strExt, true);
}
}
}
//Search Function
public void Search()
{
String strDir =
Environment.CurrentDirectory;
//First empty the list
m_arrFiles.Clear();
//Create recursively a list with all the files complying with the criteria
String[] astrFiles = m_strFiles.Split(
new Char[] {
','});
for(
int i=
0; i<astrFiles.Length; i++
)
{
//Eliminate white spaces
astrFiles[i] =
astrFiles[i].Trim();
GetFiles(strDir, astrFiles[i], m_bRecursive);
}
//Now all the Files are in the ArrayList, open each one
//iteratively and look for the search string
String strResults =
"Grep Results:\r\n\r\n";
String strLine;
int iLine, iCount;
bool bEmpty =
true;
IEnumerator enm =
m_arrFiles.GetEnumerator();
while(enm.MoveNext())
{
try
{
StreamReader sr = File.OpenText((
string)enm.Current);
iLine =
0;
iCount =
0;
bool bFirst =
true;
while((strLine = sr.ReadLine()) !=
null)
{
iLine++
;
//Using Regular Expressions as a real Grep
Match mtch;
if(m_bIgnoreCase ==
true)
mtch =
Regex.Match(strLine, m_strRegEx, RegexOptions.IgnoreCase);
else
mtch =
Regex.Match(strLine, m_strRegEx);
if(mtch.Success ==
true)
{
bEmpty =
false;
iCount++
;
if(bFirst ==
true)
{
if(m_bJustFiles ==
true)
{
strResults += (
string)enm.Current +
"\r\n";
break;
}
else
strResults += (
string)enm.Current +
":\r\n";
bFirst =
false;
}
//Add the Line to Results string
if(m_bLineNumbers ==
true)
strResults +=
" " + iLine +
": " + strLine +
"\r\n";
else
strResults +=
" " + strLine +
"\r\n";
}
}
sr.Close();
if(bFirst ==
false)
{
if(m_bCountLines ==
true)
strResults +=
" " + iCount +
" Lines Matched\r\n";
strResults +=
"\r\n";
}
}
catch(SecurityException)
{
strResults +=
"\r\n" + (
string)enm.Current +
": Security Exception\r\n\r\n";
}
catch(FileNotFoundException)
{
strResults +=
"\r\n" + (
string)enm.Current +
": File Not Found Exception\r\n";
}
}
if(bEmpty ==
true)
Console.WriteLine("No matches found!");
else
Console.WriteLine(strResults);
}
//Print Help
private static void PrintHelp()
{
Console.WriteLine("Usage: grep [/h|/H]");
Console.WriteLine(" grep [/c] [/i] [/l] [/n] [/r] /E:reg_exp /F:files");
}
Arguments CommandLine =
new Arguments(args);
if(CommandLine[
"h"] !=
null || CommandLine[
"H"] !=
null)
{
PrintHelp();
return;
}
// The working object
ConsoleGrep grep =
new ConsoleGrep();
// The arguments /e and /f are mandatory
if(CommandLine[
"E"] !=
null)
grep.RegEx = (
string)CommandLine[
"E"];
else
{
Console.WriteLine("Error: No Regular Expression specified!");
Console.WriteLine();
PrintHelp();
return;
}
if(CommandLine[
"F"] !=
null)
grep.Files = (
string)CommandLine[
"F"];
else
{
Console.WriteLine("Error: No Search Files specified!");
Console.WriteLine();
PrintHelp();
return;
}
grep.Recursive = (CommandLine[
"r"] !=
null);
grep.IgnoreCase = (CommandLine[
"i"] !=
null);
grep.JustFiles = (CommandLine[
"l"] !=
null);
if(grep.JustFiles ==
true)
grep.LineNumbers =
false;
else
grep.LineNumbers = (CommandLine[
"n"] !=
null);
if(grep.JustFiles ==
true)
grep.CountLines =
false;
else
grep.CountLines = (CommandLine[
"c"] !=
null);
// Do the search
grep.Search();
47.直接创建多级目录
//using System.IO;
DirectoryInfo di=
new DirectoryInfo(%%
1);
di.CreateSubdirectory(%%
2);
48.批量重命名
//using System.IO;
string strOldFileName;
string strNewFileName;
string strOldPart =
this.textBox1.Text.Trim();
//重命名文件前的文件名等待替换字符串
string strNewPart =
this.textBox2.Text.Trim();
//重命名文件后的文件名替换字符串
string strNewFilePath;
string strFileFolder;
//原始图片目录
int TotalFiles =
0; DateTime StartTime = DateTime.Now;
//获取开始时间
FolderBrowserDialog f1 =
new FolderBrowserDialog();
//打开选择目录对话框
if (f1.ShowDialog() ==
DialogResult.OK) {
strFileFolder =
f1.SelectedPath;
DirectoryInfo di =
new DirectoryInfo(strFileFolder);
FileInfo[] filelist = di.GetFiles(
"*.*");
int i =
0;
foreach (FileInfo fi
in filelist) {
strOldFileName =
fi.Name;
strNewFileName =
fi.Name.Replace(strOldPart, strNewPart);
strNewFilePath = @strFileFolder +
"\" + strNewFileName;
filelist[i].MoveTo(@strNewFilePath); TotalFiles +=
1;
this.listBox1.Items.Add(
"文件名:" + strOldFileName +
"已重命名为" +
strNewFileName);
i +=
1;
}
}
DateTime EndTime = DateTime.Now;
//获取结束时间
TimeSpan ts = EndTime - StartTime;
this.listBox1.Items.Add(
"总耗时:" + ts.Hours.ToString() +
"时" +ts.Minutes.ToString() +
"分" + ts.Seconds.ToString() +
"秒");
49.文本查找替换
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 ps =
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.操作Excel文件
//using Excel;
private static string Connstring ;
//连接字符串
Workbook myBook =
null;
Worksheet mySheet=
null;
Excel.ApplicationClass ExlApp =
new ApplicationClass();
ExlApp.Visible =
true;
object Missiong =
System.Reflection.Missing.Value;
string reqpath =
this.Request.PhysicalPath;
int pos = reqpath.LastIndexOf(
"\");
reqpath = reqpath.Substring(
0,pos);
ExlApp.Workbooks.Open(%%
1,oMissiong, oMissiong, oMissiong,oMissiong, oMissiong, oMissiong,
oMissiong,oMissiong,oMissiong, oMissiong, oMissiong, oMissiong);//, oMissiong);//, oMissiong); // reqpath + "\\scxx.xls"
myBook = ExlApp.Workbooks[
1];
mySheet = (Worksheet)myBook.Worksheets[
1];
Excel.Range rg;
string mySelectQuery = %%
2;
//"SELECT dh, qy,zb FROM SCXXB"
using(SqlConnection myConnection =
new SqlConnection(Connstring)){
SqlCommand myCommand =
new SqlCommand(mySelectQuery,myConnection);
myConnection.Open();
SqlDataReader myReader;
myReader =
myCommand.ExecuteReader();
// Always call Read before accessing data.
int recount=
0;
while (myReader.Read())
{
recount=recount+
1;
}
myReader.Close();
myConnection.Close();
int gho=
3;
for(
int i =
1; i < recount ; i ++
)
{
rg = mySheet.get_Range(
"A" + gho.ToString(),
"C" +
( gho ).ToString());
rg.Copy(oMissiong);
rg.Insert(XlInsertShiftDirection.xlShiftDown);
}
//从数据表中取数据
mySelectQuery = %%
2;
//"SELECT dh, qy,zb FROM SCXXB ORDER BY qy,zb";
myConnection =
new SqlConnection(Connstring);
myCommand =
new SqlCommand(mySelectQuery,myConnection);
myConnection.Open();
myReader =
myCommand.ExecuteReader();
int Curhs =
gho ;
while (myReader.Read())
{
mySheet.Cells[Curhs,1] =myReader[
"qy"].ToString() ;
mySheet.Cells[Curhs,2] =myReader[
"zb"].ToString() ;
mySheet.Cells[Curhs,3] =myReader[
"dh"].ToString() ;
Curhs ++
;
}
myReader.Close();
//合并最后一页
MergeCell(
ref mySheet,
3 , recount ,
"A");
//调用函数实现A列合并
MergeCell(
ref mySheet,
3 , recount ,
"B");
//调用函数实现A列合并
myBook.SaveAs(%%
1, oMissiong,oMissiong, oMissiong,oMissiong,oMissiong,Excel.XlSaveAsAccessMode.xlNoChange,oMissiong,oMissiong,oMissiong,oMissiong);
if(myBook !=
null)
myBook.Close(true, %%
1,
true);
if(mySheet !=
null)
System.Runtime.InteropServices.Marshal.ReleaseComObject (mySheet);
mySheet =
null;
if(myBook !=
null)
System.Runtime.InteropServices.Marshal.ReleaseComObject (myBook);
myBook =
null;
if(ExlApp !=
null)
{
ExlApp.Quit();
System.Runtime.InteropServices.Marshal.ReleaseComObject ((object)ExlApp);
ExlApp =
null;
}
GC.Collect();
/// 合并单元格
private void MergeCell(
ref Worksheet mySheet,
int startLine,
int RecCount,
string Col)
{
string qy1 = mySheet.get_Range(Col + startLine.ToString(), Col +
startLine.ToString()).Text.ToString();
Excel.Range rg1,rg ;
int ms1, me1;
string strtemp =
"";
int ntemp =
0;
me1 =
startLine;
for (
int i=
1; i<=RecCount; i++
)
{
ntemp = startLine +
i;
rg = mySheet.get_Range(Col+ ntemp.ToString(), Col+
ntemp.ToString());
strtemp =
rg.Text.ToString().Trim();
if (qy1.Trim() !=
strtemp.Trim())
{
ms1 =
me1;
me1 = i + startLine -
1;
//合并
if (me1-ms1>
0)
{
rg1 = mySheet.get_Range(Col + ms1.ToString(), Col +
me1.ToString());
rg1.ClearContents();
rg1.MergeCells =
true;
if(Col ==
"A")
mySheet.Cells[ms1,1] =
qy1;
else if (Col ==
"B")
mySheet.Cells[ms1,2] =
qy1;
}
me1 +=
1;
strtemp = mySheet.get_Range(Col + me1.ToString(), Col +
me1.ToString()).Text.ToString();
if(strtemp.Trim() !=
"")
qy1 =
strtemp;
}
}
}
52.设置JDK环境变量
//using Microsoft.Win32;
int isFileNum=
0;
int i=
0;
Environment.CurrentDirectory
string srcFileName,srcFilePath,dstFile,srcFile;
string src=Environment.CurrentDirectory+
"
{
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.选择文件夹对话框
public class FolderDialog : FolderNameEditor
{
FolderNameEditor.FolderBrowser fDialog =
new
System.Windows.Forms.Design.FolderNameEditor.FolderBrowser();
public FolderDialog()
{
}
public DialogResult DisplayDialog()
{
return DisplayDialog(
"请选择一个文件夹");
}
public DialogResult DisplayDialog(
string description)
{
fDialog.Description =
description;
return fDialog.ShowDialog();
}
public string Path
{
get
{
return fDialog.DirectoryPath;
}
}
~
FolderDialog()
{
fDialog.Dispose();
}
}
FolderDialog aa =
new FolderDialog();
aa.DisplayDialog();
if(aa.ShowDialog()==
DialogResult.OK)
{
%%
1 =
aa.SelectedPath;
}
54.删除空文件夹
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.发送数据到剪贴板
//using System.Windows.Forms;
Clipboard.SetText(%%
1);
56.从剪贴板中取数据
//using System.Windows.Forms;
IDataObject iData =
Clipboard.GetDataObject();
string %%
1;
// 将数据与指定的格式进行匹配,返回bool
if (iData.GetDataPresent(DataFormats.Text))
{
// GetData检索数据并指定一个格式
%%
1 = (
string)iData.GetData(DataFormats.Text);
}
else
{
MessageBox.Show("目前剪贴板中数据不可转换为文本",
"错误");
}
57.获取文件路径的父路径
//using System.IO;
string %%
2=Directory.GetParent(%%
1);
58.创建快捷方式
//首先添加以下引用:COM下Windows Script. Host Object Model,然后可以通过以下方法创建快捷方式。
string app = %%
1;
"http://localhost/TrainManage/Default.aspx"
string location1 = System.Environment.GetFolderPath(System.Environment.SpecialFolder.Favorites) +
"\\培训教学教务管理系统.url";
string location2 = System.Environment.GetFolderPath(System.Environment.SpecialFolder.DesktopDirectory) +
"\\培训教学教务管理系统.url";
string location3 = System.Environment.GetFolderPath(System.Environment.SpecialFolder.Programs) +
"\\培训教学教务管理系统.url";
try {
// Create a Windows Script. Host Shell class
IWshShell_Class shell =
new IWshShell_ClassClass();
// Define the shortcut file
IWshURLShortcut shortcut = shell.CreateShortcut(location1)
as IWshURLShortcut;
shortcut.TargetPath =
app;
// Save it
shortcut.Save();
shortcut = shell.CreateShortcut(location2)
as IWshURLShortcut;shortcut.TargetPath =
app;
// Save it
shortcut.Save();
shortcut = shell.CreateShortcut(location3)
as IWshURLShortcut;
shortcut.TargetPath =
app;
// Save it
shortcut.Save();
}
catch(COMException ex)
{
Console.WriteLine(ex.Message);
}
59.弹出快捷菜单
//在工具箱中找到ContextMenuStrip控件,并拖放至Form1窗体
//设计菜单内容
//将contextMenuStrip1与窗体关联。方法是先选定Form1,为其ContextMenuStrip属性设置属性值为contextMenuStrip1
60.文件夹复制到整合操作
FolderDialog aa =
new FolderDialog();
aa.DisplayDialog();
if (aa.Path !=
"")
{
string path = (aa.Path.LastIndexOf(
"\") == aa.Path.Length - 1) ? aa.Path : aa.Path+"\
";
string parent = Path.GetDirectoryName(%%
1);
Directory.CreateDirectory(path + Path.GetFileName(%%
1));
%%
1 = (%%
1.LastIndexOf(
"\") == %%1.Length - 1) ? %%1 : %%1 + "\
";
DirectoryInfo dir =
new DirectoryInfo(%%
1);
FileSystemInfo[] fileArr =
dir.GetFileSystemInfos();
Queue<FileSystemInfo> Folders =
new Queue<FileSystemInfo>
(dir.GetFileSystemInfos());
while (Folders.Count>
0)
{
FileSystemInfo tmp =
Folders.Dequeue();
FileInfo f = tmp
as FileInfo;
if (f ==
null)
{
DirectoryInfo d = tmp
as DirectoryInfo;
Directory.CreateDirectory(d.FullName.Replace((parent.LastIndexOf("\") == parent.Length - 1) ? parent : parent + "\
", path));
foreach (FileSystemInfo fi
in d.GetFileSystemInfos())
{
Folders.Enqueue(fi);
}
}
else
{
f.CopyTo(f.FullName.Replace(parent, path));
}
}
}
转载于:https://www.cnblogs.com/siyunianhua/p/8325080.html