c# 文件操作技巧

Posted on 2013-08-24 13:45  roseworld  阅读(340)  评论(0)    收藏  举报

1.在一个目录下创建一个文件夹

if(!System.IO.Directory.Exists(path)) System.IO.Directory.CreateDirectory(path); Stringpath=@”C:/新文件夹的名字”

2.时间的字符串表示法20080616091219

System.DateTime.Now.ToString("yyyyMMdd"),System.DateTime.Now.ToString("HHmmss")

DateTime.Now.ToString("yyyy/MM/ddHH:mm:ss")

3.获取系统的特殊文件的路径

Stringpath=Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments)

//有下划线的为Environment.SpecialFolder的枚举,还有很多

4.拷贝一个文件到另一个目录下

System.IO.File.Copy(要拷贝的文件目录,目的目录);

注意:两个目录都要是具体的文件名,不能是文件夹。

5.取当前程序集。EXE文件所在的绝对路径

StringlocationPath=

System.Reflection.Assembly.GetExecutingAssembly().Location

6.取得运行中的程序名字和路径(和上面的结果一样)

System.Reflection.Assembly.GetExecutingAssembly().CodeBase.Substring(8);

System.Reflection.Assembly.GetExecutingAssembly().CodeBase; 的意思就是取得运行中的程序名字和路径 但前面有file:///重要的格式 file:///D:/Project/bin/Debug/WindowsApplication.EXE

System.Reflection.Assembly.GetExecutingAssembly().CodeBase.Substring(8); 的意思就是从第8位开始取得字符串 D:/Project/bin/Debug/WindowsApplication.EXE

7.将文件目录按/号分割开(如上例中的目录)

string[]strLoc;

strLoc=locationPath.Split('//');

想取到哪一级目录就取到哪一级目录

StringstrParticalPath;

for(intj=0;j<strLoc.Length-1;j++) { strParticalPath+=strLoc[j]+"//"; }

8.打开某个文件夹/文件

System.Diagnostics.Process.Start(path);

path为文件夹目录

System.IO.File.Open(path2,FileMode.Open);

Stringpath2=@”C:/

新文件夹的名字/文件的名字”

9.取得目录(m_path)下所有文件的文件名

//返回的是m_path目录里每一个.txt文件的完整的路径

//其中m_path为目录的完整路径

string[]fileName=System.IO.Directory.GetFiles(m_path,"*.txt");

//取得第一个.txt文件的路径

m_allFilePath=fileName[0];

//如果目录下还有子目录就用下面这个

string[]fileNames=System.IO.Directory.GetFiles(m_path,"*",SearchOption.AllDirectories);

10.获取一个文件夹中所有文件的大小

longfileSize=0;

stringsOutDir=@"D:/data/CD01";

DirectoryInfodirInfo=newDirectoryInfo(sOutDir);

foreach(FileInfofileInfoindirInfo.GetFiles())

{ fileSize+=fileInfo.Length;

}

11.DirectoryInfo.GetFiles();DirectoryInfo.GetDirectories();DirectoryInfo.GetFileSystemInfos()比较

DirectoryInfodir=newDirectoryInfo(path);//path为文件夹路径

FileInfo[]a=dir.GetFiles();//获取路径下文件的名字

DirectoryInfo[]b=dir.GetDirectories();//获取路径下文件夹的名字

FileSystemInfo[]c=dir.GetFileSystemInfos();//获取路径下文件和文件夹的名字

12.一个文件夹(包括子文件夹)中所有文件的个数 publicstaticintGetFileCount(stringpath) { System.IO.DirectoryInfodir=newDirectoryInfo(path); intcount=dir.GetFiles().Length; foreach(DirectoryInfodindir.GetDirectories()) { count+=GetFileCount(d.FullName); } returncount; }

13.一个文件夹(包括子文件夹)中所有文件的大小

publicstaticlongFolderSize(stringpath)

{ longFsize=0; try { FileInfo[]files=(newDirectoryInfo(path)).GetFiles();

foreach(FileInfofileinfiles) { Fsize+=file.Length; }

DirectoryInfo[]folders=(newDirectoryInfo(path)).GetDirectories();

foreach(DirectoryInfofolderinfolders) { Fsize+=FolderSize(folder.FullName); } } catch(Exceptionex) { returnFsize; } returnFsize; }

14.文件读写操作

StaticvoidMain(string[]args)

{ conststringfilePath=@””; FileStreamfs=null; try { Console.WriteLine(“开始往文件中写内容”);

fs=newFileStream(filePath,FileMode.OpenOrCreate,FileAccess.ReadWrite);

byte[]bytes=Encoding.Default.GetBytes(“这是一个字符串,将插入到文本文件中”);

//向流中写入指定的字节数组

fs.Write(bytes,0,bytes.Length);

//将缓存区的内容存储到媒体并清除缓存区。

fs.Flush();

//将流指针移到开头

fs.Seek(0,SeekOrigin.Begin);

byte[]bytes2=newbyte[bytes.Length];

fs.Read(bytes2,0,bytes.Length);

stringstr=Encoding.Default.GetString(bytes2);

Console.WriteLine(“从文件中读出的字符串为”+Environment.NewLine+str);

}

catch(IOExceptionex)

{ Console.WriteLine(“发生的文件处理的错误!”+ex.Message);

}

finally

{ Console.WriteLine(“不论是否发生异常,都会执行finally到这里”); if(fs!=null) { fs.Close();

}

Console.ReadLine();

}

}

15.生成一个.txt文件,并往里写一串字符串。

fileName=@"C:/a.txt";

FileStreammystream=newFileStream(fileName,FileMode.OpenOrCreate);

StreamWriterMywriter=newStreamWriter(mystream,Encoding.Default);

stringtext="";

Mywriter.Write(text);

Mywriter.Close();

mystream.Close();

16.删去某个文件

//m_allFilePath为文件的完整路径,包括后缀

System.IO.File.Delete(m_allFilePath);

博客园  ©  2004-2026
浙公网安备 33010602011771号 浙ICP备2021040463号-3