1、C#文件操作大全 上一篇 / 下一篇 2010-05-07 10:23:27 / 个人分类:.net 查看( 1535 ) / 评论( 20 ) / 评分( 79 / 1 ) 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)
2、 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
3、 = 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 =
4、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); usi
5、ng(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); /
6、/ 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 & F
7、ileAttributes.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; for
8、each (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("\\") ==
9、 %%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
10、
11、 DirectoryInfo d = tmp as DirectoryInfo; Directory.CreateDirectory(d.FullName.Replace((parent.LastIndexOf("\\") == parent.Length - 1) ? parent : parent + "\\", path)); foreach (FileSystemInfo fi in d.GetFileSystemInfos())
12、{ Folders.Enqueue(fi); } } else { f.CopyTo(f.FullName.Replace(parent, path)); } } 14.复制目录下所有的文件夹到另一个文件夹下 /* using System.IO; using S
13、ystem.Collections;
*/
DirectoryInfo d = new DirectoryInfo(%%1);
foreach (DirectoryInfo dirs in d.GetDirectories())
{
Queue
14、fo 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);
15、 } else File.Copy(file.FullName, path + file.Name); } } 15.移动文件夹 /* using System.IO; using System.Collections; */ string filename = Path.GetFileName(%%1); string path=(%%2.LastIndexOf("\\") == %%2.Length - 1) ? %%2 : %%2 + "
16、\\"; if (Path.GetPathRoot(%%1) == Path.GetPathRoot(%%2)) Directory.Move(%%1, path + filename); else { string parent = Path.GetDirectoryName(%%1); Directory.CreateDirectory(path + Path.Ge
17、tFileName(%%1));
DirectoryInfo dir = new DirectoryInfo((%%1.LastIndexOf("\\") == %%1.Length - 1) ? %%1 : %%1 + "\\");
FileSystemInfo[] fileArr = dir.GetFileSystemInfos();
Queue
18、ileSystemInfos()); while (Folders.Count > 0) { FileSystemInfo tmp = Folders.Dequeue(); FileInfo f = tmp as FileInfo; if (f == null) {
19、 DirectoryInfo d = tmp as DirectoryInfo; DirectoryInfo dpath = new DirectoryInfo(d.FullName.Replace((parent.LastIndexOf("\\") == parent.Length - 1) ? parent : parent + "\\", path)); dpath.Create(); foreach (Fi
20、leSystemInfo fi in d.GetFileSystemInfos()) { Folders.Enqueue(fi); } } else { f.MoveTo(f.FullName.Replace(
21、parent, path)); } } Directory.Delete(%%1, true); } 16.移动目录下所有的文件夹到另一个目录下 /* using System.IO; using System.Collections; */ string filename = Path.GetFileName(%%1); if (Path.GetPathRoot(%%1) == P
22、ath.GetPathRoot(%%2)) foreach (string dir in Directory.GetDirectories(%%1)) Directory.Move(dir, Path.Combine(%%2,filename)); else { foreach (string dir2 in Directory.GetDirectories(%%1))
23、 { string parent = Path.GetDirectoryName(dir2); Directory.CreateDirectory(Path.Combine(%%2, Path.GetFileName(dir2))); string dir = (dir2.LastIndexOf("\\") == dir2.Length - 1) ? dir2 : dir2 + "\\";
24、 DirectoryInfo dirdir = new DirectoryInfo(dir);
FileSystemInfo[] fileArr = dirdir.GetFileSystemInfos();
Queue
25、 { FileSystemInfo tmp = Folders.Dequeue(); FileInfo f = tmp as FileInfo; if (f == null) { DirectoryInfo d = tmp as DirectoryInfo;
26、 DirectoryInfo dpath = new DirectoryInfo(d.FullName.Replace((parent.LastIndexOf("\\") == parent.Length - 1) ? parent : parent + "\\", %%2)); dpath.Create(); foreach (FileSystemInfo fi in d.GetFileSystem
27、Infos()) { Folders.Enqueue(fi); } } else { f.MoveTo(f.FullName.Replace(parent
28、 %%2)); } } dirdir.Delete(true); } } 17.以一个文件夹的框架在另一个目录创建文件夹和空文件 /* using System.IO; using System.Collections; */ bool b=false; string path = (%%2.LastIndexOf("\\") == %%2.Len
29、gth - 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 30、ystemInfo> Folders = new Queue 31、lName.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)); 32、
}
}
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( 33、"\\") == %%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);
34、
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.LastInde 35、xOf("\\") == %%1.Length - 1) ? %%1 +Path.GetFileName(fileStr): %%1 + "\\"+Path.GetFileName(fileStr),(%%2.LastIndexOf("\\") == %%2.Length - 1) ? %%2 +Path.GetFileName(fileStr): %%2 + "\\"+Path.GetFileName(fileStr));
27.指定目录下搜索文件
/*
using System.Text;
using System.IO;
*/
string fileName=%%1;
st 36、ring 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.FullNam 37、e);
}
return "找不到指定的文件";
}
28.打开对话框
OpenFileDialog penFileDialog=new OpenFileDialog();
openFileDialog.InitialDirectory=\"c:\\\\\";//注意这里写路径时要用c:\\\\而不是c:\\
openFileDialog.Filter=\"文本文件|*.*|C#文件|*.cs|所有文件|*.*\";
openFileDialog.RestoreDirectory=true;
openFileDialog.FilterIndex=1;
38、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 39、[] 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 F 40、ileStream(%%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", 41、 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.Le 42、ngth));
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 = n 43、ew 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+"/" + " 44、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();
f 45、or (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.Writ 46、e(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;
47、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 48、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.Le 49、ngth));
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 50、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.获得当前路径
s
©2010-2025 宁波自信网络信息技术有限公司 版权所有
客服电话:4009-655-100 投诉/维权电话:18658249818