C#文件操作大全.doc
《C#文件操作大全.doc》由会员分享,可在线阅读,更多相关《C#文件操作大全.doc(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- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C# 文件 操作 大全
咨信网温馨提示:
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【xrp****65】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【xrp****65】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【xrp****65】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【xrp****65】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
关于本文