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<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
        }
    }
}

 

转载于:https://www.cnblogs.com/xslwm/p/9610078.html

学生个人文件管理系统 v2.0 A.声明: 1.非源代码。 2.有些用户没有设置自己的数据库服务器就直接登录或者注册,这样是不会成的, 请选择自定义服务器,然后填入自己的IP,数据库用户名以及密码,因为默认服 务器的IP是192.168.0.252. 3.暂不支持拖拽功能(将文件拖进去就能上传) 4.每隔10分钟系统会锁定一次,以防止其他用户恶意操作数据,需解锁请输入自己 的登录密码。【暂不支持设置间隔时间或者设置是否采取锁定策略】 5.暂不支持修改上传后的文件的属性(类别等) 6.在Win7上运行时需要管理员权限,请以管理员方式运行本程序。 B.新版特性: 1.修正了大文件上传或下载时服务器超时的Bug. 可上传500M以内的单个文件.(在空间大小足够的前提下) 2.修正了客户端上传文件的时间与服务器时间不同步的Bug, 同时在充分考虑服务器性能的前提下,给客户端提供了正 确的时间。 3.新增数据库压缩功能,针对数据库日志文件动辄上G的问题 提供了解决方案,使客户端用户使用更流畅。(管理员功能) 4.(2011-03-14)纠正了数据创建时错误,适应SQLServer不同 版本的数据库;纠正了在SQLServer下不同版本数据库备份时路径 错误问题。 5.(2011-03-14)纠正了程序中密码验证不区分大小写的错误。 6.(2011-03-18) 纠正了系统锁定后无法解锁的错误 2011-03-18 23:20 南充市扎针高手 李泽波
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值