收藏 分销(赏)

C#文件操作大全.doc

上传人:xrp****65 文档编号:7660347 上传时间:2025-01-11 格式:DOC 页数:133 大小:279KB
下载 相关 举报
C#文件操作大全.doc_第1页
第1页 / 共133页
C#文件操作大全.doc_第2页
第2页 / 共133页
点击查看更多>>
资源描述
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); 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 } /* DirectoryInfo dir = new DirectoryInfo(%%1); FileInfo[] files = dir.GetFiles("*.*"); foreach(FileInfo %%2 in files){  %%3 } */ 13.复制文件夹 /* using System.IO; using System.Collections; */ string path = (%%2.LastIndexOf("\\") == %%2.Length - 1) ? %%2 : %%2+"\\"; string parent = Path.GetDirectoryName(%%1); Directory.CreateDirectory(path + Path.GetFileName(%%1)); 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.复制目录下所有的文件夹到另一个文件夹下 /* using System.IO; using System.Collections; */ DirectoryInfo d = new DirectoryInfo(%%1); foreach (DirectoryInfo dirs in d.GetDirectories()) {     Queue<FileSystemInfo> al = new Queue<FileSystemInfo>(dirs.GetFileSystemInfos());     while (al.Count > 0)     {         FileSystemInfo temp = al.Dequeue();         FileInfo file = temp as FileInfo;         if (file == null)         {             DirectoryInfo directory = temp as DirectoryInfo;             Directory.CreateDirectory(path + directory.Name);             foreach (FileSystemInfo fsi in directory.GetFileSystemInfos())                 al.Enqueue(fsi);         }         else             File.Copy(file.FullName, path + file.Name);     } } 15.移动文件夹 /* using System.IO; using System.Collections; */                 string filename = Path.GetFileName(%%1);                 string path=(%%2.LastIndexOf("\\") == %%2.Length - 1) ? %%2 : %%2 + "\\";                 if (Path.GetPathRoot(%%1) == Path.GetPathRoot(%%2))                     Directory.Move(%%1, path + filename);                 else                 {                     string parent = Path.GetDirectoryName(%%1);                     Directory.CreateDirectory(path + Path.GetFileName(%%1));                     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.移动目录下所有的文件夹到另一个目录下 /* using System.IO; using System.Collections; */ string filename = Path.GetFileName(%%1);                 if (Path.GetPathRoot(%%1) == Path.GetPathRoot(%%2))                     foreach (string dir in Directory.GetDirectories(%%1))                         Directory.Move(dir, Path.Combine(%%2,filename));                 else                 {                     foreach (string dir2 in Directory.GetDirectories(%%1))                     {                         string parent = Path.GetDirectoryName(dir2);                         Directory.CreateDirectory(Path.Combine(%%2, Path.GetFileName(dir2)));                         string dir = (dir2.LastIndexOf("\\") == dir2.Length - 1) ? dir2 : dir2 + "\\";                         DirectoryInfo dirdir = new DirectoryInfo(dir);                         FileSystemInfo[] fileArr = dirdir.GetFileSystemInfos();                         Queue<FileSystemInfo> Folders = new Queue<FileSystemInfo>(dirdir.GetFileSystemInfos());                         while (Folders.Count > 0)                         {                             FileSystemInfo tmp = Folders.Dequeue();                             FileInfo f = tmp as FileInfo;                             if (f == null)                             {                                 DirectoryInfo d = tmp as DirectoryInfo;                                 DirectoryInfo dpath = new DirectoryInfo(d.FullName.Replace((parent.LastIndexOf("\\") == parent.Length - 1) ? parent : parent + "\\", %%2));                                 dpath.Create();                                 foreach (FileSystemInfo fi in d.GetFileSystemInfos())                                 {                                     Folders.Enqueue(fi);                                 }                             }                             else                             {                                 f.MoveTo(f.FullName.Replace(parent, %%2));                             }                         }                         dirdir.Delete(true);                     }                 } 17.以一个文件夹的框架在另一个目录创建文件夹和空文件 /* using System.IO; using System.Collections; */ bool b=false; string path = (%%2.LastIndexOf("\\") == %%2.Length - 1) ? %%2 : %%2 + "\\"; string parent = Path.GetDirectoryName(%%1); Directory.CreateDirectory(path + Path.GetFileName(%%1)); 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.指定目录下搜索文件 /* using System.Text; using System.IO; */ string fileName=%%1; string dirName=%%2;  DirectoryInfo   dirc=new   DirectoryInfo(dirName);  foreach(FileInfo   file   in   dirc.GetFiles()) {   if(file.Name.IndexOf(fileName)>-1)    return file.FullName;   }   foreach(DirectoryInfo   dir   in   dirc.GetDirectories())   {      return   GetFile(fileName,dir.FullName);     }   return   "找不到指定的文件";    } 28.打开对话框 OpenFileDialog 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.获得当前路径 s
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传
相似文档                                   自信AI助手自信AI助手

当前位置:首页 > 教育专区 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4009-655-100  投诉/维权电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服