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
            }
        }
    }
  • 相关阅读:
    codeforces_346A Alice and Bob(数学)
    POJ_2533 Frogger 最小瓶颈路
    hdu1205_吃糖果
    POJ_2503 Babelfish 字典树
    在PC上登录多个微信账号
    查看百度云用户的分享文件
    QQ邮箱收不到ins发的验证码
    试用Fakeapp
    为什么使用网易邮箱
    插入央视网站视频
  • 原文地址:https://www.cnblogs.com/xslwm/p/9610078.html
Copyright © 2011-2022 走看看