zoukankan      html  css  js  c++  java
  • c#管理文件系统

    using System;
    using System.Collections.Generic;
    using System.IO;
    using static System.Console;
    
    /*System.IO:
           FileSystemInfo       DriveInfo
            |         |
    DirectoryInfo   FileInfo    
    
        Directory   File        Path
    
    Directory和File类只含静态方法,不能被实例化(多用于执行一个操作)
    DirectoryInfo和FileInfo提供与Directory和File大致相同的公共方法
        (多用于对同一个对象执行多个操作)
    
    DriveInfo检查驱动器信息(磁盘C,D,E...)
    */
    
    namespace ConsoleApp
    {
        class Program
        {
    
            static void Main(string[] args)
            {
                //PrintDrivesInfo();
    
                //Path类
                string path = Path.Combine(@"D:Projects", "ReadMe.txt");
                WriteLine(path);
                path = GetDocumentsFolder();
                WriteLine(path);
                //Environment.SpecialFolder枚举了桌面、音乐、图片等
    
                //创建文件, 路径必须存在
                string fileName = "D:\Sample1.txt";
                File.WriteAllText(fileName, "Hello World!");
    
                //复制文件 执行时间略长
                var file = new FileInfo(@".ReadMe.txt");
                //路径需存在,不能覆盖现有文件
                if (file.Exists && !File.Exists(@"C:ReadMe.txt"))
                    file.CopyTo(@"C:ReadMe.txt");
                //
                File.Copy(@"C:ReadMe.txt", @"C:CopiesReadMe.txt");
    
                //删除、移动 文件或文件夹
                //File.Delete(path);
                //File.Move(path, path);
    
                string[] lines = File.ReadAllLines(fileName);
    
                //在读取完整个文件之前就可遍历它
                IEnumerable<string> lines1 = File.ReadAllLines(fileName);
                foreach (var line in lines1) { }
    
                string[] movies = { "Snow White And The Seven Dwarfs", "Gone With The Wind" };
                File.WriteAllLines(fileName, movies);
    
                //追加
                File.AppendAllLines(fileName, movies);
    
                //枚举文件
                Directory.GetFiles(path); //返回目录中所有文件的名称(包括其路径)
                Directory.GetDirectories(path);//返回目录中子目录的名称(包括其路径)
    
                //同上,但它们使用IEnumerable<string>立即开始返回结果
                Directory.EnumerateFiles(path);
                Directory.EnumerateDirectories(path);
    
    
    
            }
    
            public static void PrintDrivesInfo()
            {
                DriveInfo[] drives = DriveInfo.GetDrives();
                foreach (var drive in drives)
                {
                    if (drive.IsReady)
                    {
                        WriteLine($"Drive name: {drive.Name}");                     //C:
                        WriteLine($"Format: {drive.DriveFormat}");                  //NTFS
                        WriteLine($"Type: {drive.DriveType}");                      //Fixed
                        WriteLine($"Root directory: {drive.RootDirectory}");        //C:
                        WriteLine($"Volume label: {drive.VolumeLabel}");            //System
                        WriteLine($"Free space: {drive.TotalFreeSpace}");           //...
                        WriteLine($"Available space: {drive.AvailableFreeSpace}");
                        WriteLine($"Total size: {drive.TotalSize}");
                        WriteLine();
                    }
                }
            }
    
            private static string GetDocumentsFolder()
            {
    #if NET46
                return Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments);
    #else
                string drive = Environment.GetEnvironmentVariable("HOMEDRIVE");
                string path = Environment.GetEnvironmentVariable("HOMEPATH");
                //return Path.Combine(drive+path, "documents");//不一定正确,有可能用户改变了文档的位置
                return Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments);
    #endif
            }
        }
    }
  • 相关阅读:
    Ubuntu深度学习环境搭建 tensorflow+pytorch
    FineReport调用存储过程
    简单实现固定表格的上表头、左表头
    为什么vertical-align不起作用
    纪录我的iOS学习之路
    【原】使用Bmob作为iOS后台开发心得——云端代码添加其他User的Relation关系
    【原】使用Bmob作为iOS后台开发心得——查询关联关系(BmobRelation)
    【译】Unity3D Shader 新手教程(6/6) —— 更好的卡通Shader
    【译】Unity3D Shader 新手教程(5/6) —— Bumped Diffuse Shader
    【译】Unity3D Shader 新手教程(4/6) —— 卡通shader(入门版)
  • 原文地址:https://www.cnblogs.com/xslwm/p/9610078.html
Copyright © 2011-2022 走看看