您的位置:首页 > 编程语言 > C#

C#对Windows文件/文件夹/目录的一些操作总结

2016-03-16 10:51 741 查看
1. 在一个目录下创建一个文件夹

if (!System.IO.Directory.Exists(path))

System.IO.Directory.CreateDirectory(path);

String path=@”C:/新文件夹的名字”

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

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

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

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

String path = 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('//');

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

String strParticalPath;

for (int j = 0; j < strLoc.Length - 1; j++)

{

strParticalPath += strLoc[j] + "//";

}

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

System.Diagnostics.Process.Start(path);

path为文件夹目录

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

String path2=@”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. 获取一个文件夹中所有文件的大小

long fileSize = 0;

string sOutDir = @"D:/data/CD01";

DirectoryInfo dirInfo = new DirectoryInfo(sOutDir);

foreach (FileInfo fileInfo in dirInfo.GetFiles())

{

fileSize += fileInfo.Length;

}

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

DirectoryInfo dir = new DirectoryInfo(path);// path为文件夹路径

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

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

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

12. 一个文件夹(包括子文件夹)中所有文件的个数

public static int GetFileCount(string path)

{

System.IO.DirectoryInfo dir = new DirectoryInfo(path);

int count = dir.GetFiles().Length;

foreach (DirectoryInfo d in dir.GetDirectories())

{

count += GetFileCount(d.FullName);

}

return count;

}

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

publicstaticlong FolderSize(string path)

{

long Fsize = 0;

try

{

FileInfo[] files = (newDirectoryInfo(path)).GetFiles();

foreach (FileInfo file in files)

{

Fsize += file.Length;

}

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

foreach (DirectoryInfo folder in folders)

{

Fsize += FolderSize(folder.FullName);

}

}

catch (Exception ex)

{

return Fsize;

}

return Fsize;

}

14. 文件读写操作

Static void Main(string[] args)

{

const string filePath = @””;

FileStream fs = null;

try

{

Console.WriteLine(“开始往文件中写内容”);

fs = new FileStream(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 = new byte[bytes.Length];

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

string str = Encoding.Default.GetString(bytes2);

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

}

catch(IOException ex)

{

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

}

finally

{

Console.WriteLine(“不论是否发生异常,都会执行finally到这里”);

if(fs != null)

{

fs.Close();

}

Console.ReadLine();

}

}

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

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

FileStream mystream = newFileStream(fileName, FileMode.OpenOrCreate);

StreamWriter Mywriter = newStreamWriter(mystream, Encoding.Default);

string text = "";

Mywriter.Write(text);

Mywriter.Close();

mystream.Close();

16. 删去某个文件

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

System.IO.File.Delete(m_allFilePath);

顶0
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: