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文件所在的绝对路径

String locationPath =

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为文件夹目录

, 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.             一个文件夹(包括子文件夹)中所有文件的大小

public static long FolderSize(string path)

{

   long Fsize = 0;

   try

   {

      FileInfo[] files = (new DirectoryInfo(path)).GetFiles();

      foreach (FileInfo file in files)

      {

         Fsize += file.Length;

      }

   DirectoryInfo[] folders = (new DirectoryInfo(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 = new FileStream(fileName, FileMode.OpenOrCreate);

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

string text = "";

Mywriter.Write(text);

Mywriter.Close();

mystream.Close();

16.             删去某个文件

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

System.IO.File.Delete(m_allFilePath);

 
0

C#对Windows文件/文件夹/目录的一些操作总结的更多相关文章

  1. windows 下文件的高级操作

    本文主要说明在Windows下操作文件的高级方法,比如直接读写磁盘,文件的异步操作,而文件普通的读写方式在网上可以找到一大堆资料,在这也就不再进行专门的说明. 判断文件是否存在 在Windows中并没 ...

  2. 如何查看windows某个目录下所有文件/文件夹的大小?

    如何查看windows某个目录下所有文件/文件夹的大小? TreeSize Free绿色汉化版是一款硬盘空间管理工具,用树形描述出来,能够显示文件大小和实际占用空间数及浪费的空间等信息,让你做出相应的 ...

  3. [转帖]如何查看windows某个目录下所有文件/文件夹的大小?

    如何查看windows某个目录下所有文件/文件夹的大小? https://www.cnblogs.com/gered/p/10208281.html 挺好的工具 linux 上面 我就是使用 du - ...

  4. 获取WINDOWS特殊文件夹

    const// registry entries for special paths are kept in :  REGSTR_PATH_SPECIAL_FOLDERS   = REGSTR_PAT ...

  5. Eclipse 中打开选中文件/文件夹所在目录

    习惯了使用VS中的 ”通过右键打开选中文件/文件夹在电脑中的目录”功能后, 当切换到Eclipse环境后,发现居然找不到这个功能, 虽可以通过右键文件属性,看到文件路径,复制路径然后在资源管理器中打开 ...

  6. windows 打开文件夹

    @echo off rem 建立链接 net use \\192.168.2.3\share /user:username password rem 打开共享文件夹 explorer \\192.16 ...

  7. Windows各个文件夹介绍

    windows文件介绍 总结 ├WINDOWS │ ├-system32(存放Windows的系统文件和硬件驱动程序) │ │ ├-config(用户配置信息和密码信息) │ │ │ └-system ...

  8. Windows删除文件夹下的指定格式文件(递归删除)

    问题描述: 今天遇到一个需求,需要对文件夹进行文件筛选.目录结构较为复杂(目录较多,层次较深),数据量较大(总共60GB左右). 鉴于上述情况,直接排除了人工处理方式(否则小伙伴们会打死我的). 解决 ...

  9. linux系统下修改文件夹目录权限

    linux系统下修改文件夹目录权限 文件夹权限问题 Linux.Fedora.Ubuntu修改文件.文件夹权限的方法差不多.很多人开始接触Linux时都很头痛Linux的文件权限问题.这里告诉大家如何 ...

随机推荐

  1. 第14月第11天 linkmap

    1. 4.LinkMap服务的开启方式及文件目录 Xcode->Project->Build Settings-> Search map -> 设置 Write Link Ma ...

  2. 自己对Java的一些认识

    作为一个理论性比较强的学生,谈一下这段时间对java以及对程序设计的理解 java相对于其它语言有几个特点,一个是面向对象,一个是强类型          首先谈谈面向对象,关于类和对象,这个一定要有 ...

  3. hud 2554 N对数的排列问题 (规律)

    题目链接 Problem Description 有N对双胞胎,他们的年龄分别是1,2,3,--,N岁,他们手拉手排成一队到野外去玩,要经过一根独木桥,为了安全起见,要求年龄大的和年龄小的排在一起,好 ...

  4. 为小程序开发创建本地mock数据服务器

    开发时使用easy-mock的服务,不是大厂就不是大厂,实在恶心,每天都会有卡的这么一段时间 于是,自己建个本地mock服务算了,想使用express 但是必须把json数据里面的不同对象,分配到不同 ...

  5. mongodb系列~mongo常用命令

    mongodb常用命令大全1 索引相关命令 db.chenfeng.ensureIndex({"riqi":1}) 添加索引会阻塞nohup mongo --eval " ...

  6. sun.misc.BASE64Encoder等类报错的解决方法

    一.引言: sun.misc.BASE64Encoder等类不属于JDK标准库范畴,但在JDK中包含了该类,可以直接使用.但是在eclipse中直接使用却报错.本文就介绍一下针对这样的类如何处理. 二 ...

  7. Linux的capability深入分析(2)【转】

    转自:https://blog.csdn.net/wangpengqi/article/details/9821231 rpm -ql libcap-2.16-5.2.el6.i686  /lib/l ...

  8. dup,dup2函数【转】

    转自:http://eriol.iteye.com/blog/1180624 转自:http://www.cnblogs.com/jht/archive/2006/04/04/366086.html ...

  9. vss 日文文件路径的名字在中文系统下乱码

    解决方式:tools-font 文字设置 日本語

  10. 【转】void及void指针的深刻解析

    void的含义 void即“无类型” ,void*则为“无类型指针”,可以指向任何数据类型,所以又叫做“通用指针”. void指针使用规范 ①void指针可以只想任意类型的数据,亦即可用任意数据类型的 ...