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


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

    System.IO.File.Open(path2FileMode.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
  • 相关阅读:
    [k8s]通过svc来访问集群podhttp://api:8080/api/v1/namespaces/default/services/mynginx/proxy/
    redis 常用配置
    mysql 查询重复值命令
    maven3常用命令创建Project
    nginx如何解决超长请求串
    hbase 使用备忘
    Top命令内存占用剖析
    linux 模拟延时和丢包
    hbase命令备忘
    linux grep命令总结
  • 原文地址:https://www.cnblogs.com/xinweichen/p/5282567.html
Copyright © 2020-2023  润新知