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. linux的基本操作与常见命令

    linux的基本操作与常见命令: jdk的安装: 步骤:(特别注意:虚拟机安装的一般是32位的操作系统,jdk也必须使用32位的) 查看虚拟机版本:sudo uname --m i686 //表示是3 ...

  2. 求FIRST集和FOLLOW集

    花了点时间弄了个大概,希望对和我一样的人有所帮助.   文法如下: E -> TE'E' -> +TE'|εT -> FT'T' -> *FT'|εF -> (E)|id ...

  3. luogu 1052 过河

    神仙的博客,先copy了日后绝对删掉的,(因为我实在没耐心看懂啊..) 题解 step 1理解题意 在做这道题之前,一定要理解好题意,有一个需要特别注意注意的地方: 青蛙不是一定要跳到石头上[嗯... ...

  4. POJ1236 Network of Schools【强连通】

    题意: N(2<N<100)各学校之间有单向的网络,每个学校得到一套软件后,可以通过单向网络向周边的学校传输,问题1:初始至少需要向多少个学校发放软件,使得网络内所有的学校最终都能得到软件 ...

  5. 阿里云3台机器搭建Hadoop HA服务

    1 Mac电脑配置 阿里云配置机器 选择配置 按量付费 选择三台机器  2核8G     

  6. HTTP 协议报文解析

    说明转载自https://blog.csdn.net/chf1142152101/article/details/74162755 本篇主要是为了记录HTTP中报文的格式,以便针对报文进行解析.首先会 ...

  7. swift 计算100000以内的 回文数

    ... { var rep = var aa = a repeat{ rep = rep * + aa % aa = aa / }) if(rep == a) { print("\(a)是回 ...

  8. 2017-2018-2 165X 『Java程序设计』课程每周成绩公布

    2017-2018-2 165X 『Java程序设计』课程 每周成绩公布 本博客将跟随教学进度不定期更新,每次更新后将在课程群公布.如对成绩有疑问,请于公布成绩后的1天之内联系助教,进行审核确认. - ...

  9. libSVM在matlab下的使用安装

    1) 从LIBSVM的官网http://www.csie.ntu.edu.tw/~cjlin/libsvm/上下载最新版本的LIBSVM,当前版本为libsvm-3.18.zip 2) 解压压缩包到电 ...

  10. latex 字体大小设置

    tex 设置字体大小命令由小到大依次为: \tiny \scriptsize \footnotesize \small \normalsize \large \Large \LARGE \huge \ ...