C#编程之c#管理文件系统
小标 2018-11-14 来源 : 阅读 2437 评论 0

摘要:本文主要向大家介绍了C#编程之c#管理文件系统,通过具体的内容向大家展示,希望对大家学习C#编程有所帮助。

本文主要向大家介绍了C#编程之c#管理文件系统,通过具体的内容向大家展示,希望对大家学习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:\Copies\ReadMe.txt");

            //删除、移动 文件或文件夹
            //File.Delete(path);
            //File.Move(path, path);

            string[] lines = File.ReadAllLines(fileName);

            //在读取完整个文件之前就可遍历它
            IEnumerable 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立即开始返回结果
            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
        }
    }
}

本文由职坐标整理并发布,希望对同学们有所帮助。了解更多详情请关注职坐标编程语言C#.NET频道!

本文由 @小标 发布于职坐标。未经许可,禁止转载。
喜欢 | 0 不喜欢 | 1
看完这篇文章有何感觉?已经有1人表态,0%的人喜欢 快给朋友分享吧~
评论(0)
后参与评论

您输入的评论内容中包含违禁敏感词

我知道了

助您圆梦职场 匹配合适岗位
验证码手机号,获得海同独家IT培训资料
选择就业方向:
人工智能物联网
大数据开发/分析
人工智能Python
Java全栈开发
WEB前端+H5

请输入正确的手机号码

请输入正确的验证码

获取验证码

您今天的短信下发次数太多了,明天再试试吧!

提交

我们会在第一时间安排职业规划师联系您!

您也可以联系我们的职业规划师咨询:

小职老师的微信号:z_zhizuobiao
小职老师的微信号:z_zhizuobiao

版权所有 职坐标-一站式AI+学习就业服务平台 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
 沪公网安备 31011502005948号    

©2015 www.zhizuobiao.com All Rights Reserved