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

c#管理文件系统的更多相关文章

  1. ubuntu12.04管理文件系统工具

    ubuntu12.04管理文件系统工具 以前可以自动管理系统盘和移动硬盘,刚重新安装了UBUNTU12.04LTS之后不行了,原来是这个工具: "PCMANFM" 群星_-_偏偏喜 ...

  2. 《Linux命令行与shell脚本编程大全》 第八章管理文件系统

    8.1 探索linux文件系统 8.1.1 基本的Linux文件系统 ext:最早的文件系统,叫扩展文件系统.使用虚拟目录操作硬件设备,在物理设备上按定长的块来存储数据. 用索引节点的系统来存放虚拟目 ...

  3. 【Linux】管理文件系统

    文件系统概念: 文件系统是指文件的组织与管理结构,是一个有关于磁盘中各种有用信息的记录——即是保存以下信息的结构记录表 当前所使用磁盘的容量信息 磁盘的可用信息,包括已占用和剩余的空间: 文件与目录的 ...

  4. Linux权限及归属管理 磁盘管理 文件系统 LVM管理

    第五六七章   alias 查看系统别名   67 chmod 设置文件或目录的权限 -R表示以递归的方式设置目录及目录下的所有子目录及文件的权限 u:属主 g:属组 o:其他人 a:所有人 +:添加 ...

  5. 使用NSFileManager管理文件系统

    文件系统作为被所有进程使用的基本资源之一,在macOS和iOS中主要用于处理数据文件.应用程序以及与操作系统自身相关的持久存储. iOS中的文件系统格式为HFS Plus,macOS中的主要格式也是H ...

  6. Linux系统管理第五六七章 权限及归属管理 磁盘管理 文件系统与lvm

    第五六七章   alias 查看系统别名   67 chmod 设置文件或目录的权限 -R表示以递归的方式设置目录及目录下的所有子目录及文件的权限 u:属主 g:属组 o:其他人 a:所有人 +:添加 ...

  7. Linux系统管理第四次作业 磁盘管理 文件系统

    1.为主机新增两块30GB的SCSI硬盘 2.划分3个主分区,各5GB,剩余空间作为扩展分区 [root@localhost ~]# fdisk /dev/sdb 欢迎使用 fdisk (util-l ...

  8. linux管理文件系统指令

    就一个基本的linux系统而言,其计算机硬盘只能有三个分区:一个交换分区(用于处理物理内存存不下的信息),一个包含引导转载程序的内核的启动分区,一个根文件系统分区,后两个常采用 ext3文件系统 与e ...

  9. 第5章 Linux上管理文件系统

    5.1 机械硬盘 机械硬盘由多块盘片组成,它们都绕着主轴旋转.每块盘片上下方都有读写磁头悬浮在盘片上下方,它们与盘片的距离极小.在每次读写数据时盘片旋转,读写磁头被磁臂控制着不断的移动来读取其中的数据 ...

随机推荐

  1. vue.js sha256加密

    sha256: 1.使用cnpm安装 :cnpm install js-sha256 2.然后在组件中methods定义方法,在调用 let sha256 = require("js-sha ...

  2. Kafka简介、基本原理、执行流程与使用场景

    一.简介 Apache Kafka是分布式发布-订阅消息系统,在 kafka官网上对 kafka 的定义:一个分布式发布-订阅消息传递系统. 它最初由LinkedIn公司开发,Linkedin于201 ...

  3. error C2381: “exit”: 重定义;__declspec(noreturn) 不同

    问题: error C2381: “exit” : 重定义:__declspec(noreturn) 不同 解决办法: 调换一下头文件的包含次序: #include <GL/glut.h> ...

  4. Docker启动Get Permission Denied

    https://www.cnblogs.com/informatics/p/8276172.html 以下问题及解决方法都在Ubuntu16.04下,其他环境类似 问题描述 安装完docker后,执行 ...

  5. 基于 HTML5 的 WebGL 和 VR 技术的 3D 机房数据中心可视化

    前言 在 3D 机房数据中心可视化应用中,随着视频监控联网系统的不断普及和发展, 网络摄像机更多的应用于监控系统中,尤其是高清时代的来临,更加快了网络摄像机的发展和应用. 在监控摄像机数量的不断庞大的 ...

  6. app.use和app.get,app.post区别

    express中,express的实例app: app.use(path,callback)中的callback既可以是router对象又可以是函数 app.get(path,callback)中的c ...

  7. 《Effective C++》模板与泛型编程:条款32-条款40

    条款41:了解隐式接口和编译期多态 class支持显示接口和运行期多态 class的显示接口由函数的名签式构成(函数名称.参数类型.返回类型) class的多态通过virtual函数发生在运行期 te ...

  8. gitignore的使用

    gitignore的作用是忽略文件的提交,被加入到gitignore中的文件不会被提交到文件服务器 通常需要添加到.gitignore的文件有: (1)缓存相关文件,编译相关文件,运行时相关文件 (2 ...

  9. 使用Spring表达式语言进行装备--SpEL

    本文主要想记录最近的两个使用spring框架实现通过配置文件装备Bean,以及使用SpEL装备Bean. 1.使用配置文件装备Bean: 当我们写某些Bean的时候是希望这个Bean当中的属性是可以通 ...

  10. SQL 中使用 WITH AS 提高性能

    一.WITH AS的含义WITH AS短语,也叫做子查询部分(subquery factoring),可以让你做很多事情,定义一个SQL片断,该SQL片断会被整个SQL语句所用到.有的时候,是为了让S ...