C#(三十六)之文件夹、路径、环境特殊目录类


文件类操作需要引入命名空间

using System.IO;

文件夹操作需要以下两个类

System.IO.Directory; // 操作文件夹使用方法
System.IO.DirectoryInfo; // 操作文件夹使用方法

Directory类方法:

CreateDirectory()      创建指定路径中的目录
Move()               将目录和目录中的文件移到指定位置
Delete()              删除指定的目录
Exists()               确定指定目录上的目录是否存在
GetDirectories()            获取指定目录中所有子目录的名称
GetFiles()                      获取指定目录中所有文件的名称
GetParent()                   获取指定目录的父目录,指定目录可以是绝对路径,也可以是相对路径。
GetCurrentDirectory()   获取应用程序当前工作的目录
GetCreationTime()         设置文件或目录的创建日期和时间
GetLastAccessTime()    获取文件或目录上次修改的日期和时间
GetLastWriteTime()        获取文件目录上次修改的日期和时间
SetCreationTime()          设置文件或目录的创建日期和时间
SetLastAccessTime()      设置文件或目录上次访问的日期和时间
SetLastWriteTime()     设置文件或目录上次修改的日期和时间

例:创建文件夹:

private void createDir_Click(object sender, EventArgs e)
        {
            try
            {
                if (Directory.Exists(Global.Global.dir_str))
                {
                    MessageBox.Show("文件夹已存在");
                }
                else
                {
                    Directory.CreateDirectory(Global.Global.dir_str);
                    MessageBox.Show("创建成功");
                }
            }
            catch (Exception q)
            {
                MessageBox.Show(q.Message);
            }
        }

在编写代码中尽量注意异常处理,遇到错误抛异常,别让程序死机。

可以多使用try-catch语法。

Path类方法和字段:

字段:

DirectorySeparatorChar                     获取操作系统中的路径分隔符
PathSeparator                                   获取操作系统中环境变量中的分隔符
VolumeSeparatorChar                       获取操作系统中的卷分隔符

方法:

GetFileName()                                   返回指定路径中的文件名(带扩展名)
GetFileNameWithoutExtension()         返回指定路径中的文件名(不带扩展名)
GetExension()                                    返回指定路径中的扩展名
ChangeExtension()                            更改指定路径中的扩展名
GetDirectoryName()                          返回指定路径中的目录信息
Combines()                                       合并两个路径的字符串

例:获取带扩展名的文件名

private void getFileName_Click(object sender, EventArgs e)
        {
            try
            {
                Global.Global.fileName = Path.GetFileName(Global.Global.file_str);
                fileNames.Text = Global.Global.fileName;
            }
            catch (Exception q)
            {
                MessageBox.Show(q.Message);
            }
        }

Environment获取电脑的相关属性和方法

属性

Is64BitProcess              当前进程是否是一个64位进程
HasShutdownStarted           当前CLR关闭还是启动
Is64BitOperatingSystem       检查是否是64位系统
Version                 NET环境版本
GetCommandLineArgs        获取命令行参数
UserInteractive             是否是用户交互模式
GetEnvironmentVariables    获取系统环境变量
OSVersion                   操作系统版本号
GetLogicalDrives          获取操作系统盘符
GetEnvironmentVariable     获取系统环境变量(Environment.GetEnvironmentVariable("path", EnvironmentVariableTarget.Process);)
MachineName             操作系统名称
WorkingSet           获取映射到进程上下文的物理内存量
SystemDirectory           系统盘路径
UserDomainName       windows域账号
NewLine               换行符
SystemPageSize           获取操作系统的内存页的字节数。
TickCount & Int32.MaxValue       获取进程的CPU使用状况
ProcessorCount           获取系统进程数
UserName                   系统用户名
GetEnvironmentVariable     获取操作系统环境变量
SetEnvironmentVariable      设置环境变量
Exit                退出
方法:
FailFast()                             快速终止程序
GetCommandLineArgs        返回包含当前进程的命令行参数
GetFolder                           获取系统中特殊文件夹的路径
GetLogicalDrives                 返回当前计算器所有逻辑器名称

例:获取电脑信息

private void getComputerInfo_Click(object sender, EventArgs e)
        {
            try
            {
                Global.Global.computerName = System.Environment.UserName;
                label_computerName.Text = Global.Global.computerName;
 
                Global.Global.computerSystem = System.Environment.OSVersion.ToString();
                label_System.Text = Global.Global.computerSystem;
 
                Global.Global.socNum = System.Environment.ProcessorCount.ToString();
                label_socNum.Text = Global.Global.socNum;
            }
            catch (Exception q)
            {
               MessageBox.Show(q.Message);
            }
        }

SpecialFolder特殊文件夹类

Mydocument                             我的文档文件夹
MyMusic                                    我的音乐文件夹
MyPictures                                 我的图片
Desktop                                     桌面
Cookies                                     用于存储internet  Cookies的目录
History                                      用于存储Internet历史记录的目录
InternetCache                            用于存储Internet临时文件目录
Recent                                       包含用户最近使用过的文档目录
SendTo                                      包含“发送”菜单项的目录
StartMenu                                  包含“开始”菜单项的目录
StartUp                                      对应于用户“启动”程序组的目录
ProgramFiles                             ProgramFiles 目录
System                                      system目录

测试使用全部代码

Form1.cs

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.IO;
using Global;
 
namespace C文件操作
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
 
        private void Form1_Load(object sender, EventArgs e)
        {
            cover.Checked = true;
        }
 
        /// 
        /// 创建文件夹按钮点击事件
        /// 
        private void createDir_Click(object sender, EventArgs e)
        {
            try
            {
                if (Directory.Exists(Global.Global.dir_str))
                {
                    MessageBox.Show("文件夹已存在");
                }
                else
                {
                    Directory.CreateDirectory(Global.Global.dir_str);
                    MessageBox.Show("创建成功");
                }
            }
            catch (Exception q)
            {
                MessageBox.Show(q.Message);
            }
        }
        /// 
        /// 创建文件
        /// 
        private void createFile_Click(object sender, EventArgs e)
        {
            try
            {
                if (File.Exists(Global.Global.file_str))
                {
                    MessageBox.Show("文件已存在");
                }
                else
                {
                    //File.CreateText(file_str);
                    File.Create(Global.Global.file_str).Close();
                }
            }
            catch (Exception q)
            {
                MessageBox.Show(q.Message);
            }
        }
        /// 
        /// 文件内容写入
        /// 
        private void writeFile_Click(object sender, EventArgs e)
        {
            try
            {
                if (File.Exists(Global.Global.file_str))
                {
                    Global.Global.content = contentRich.Text;
                    if (Global.Global.content == "")
                    {
                        MessageBox.Show("请输入内容");
                    }
                    Global.Global.radioChoose = cover.Checked;
                    if (Global.Global.radioChoose)
                    {
                        coverWrite(Global.Global.content);
                    }
                    else
                    {
                        appendWrite(Global.Global.content);
                    }
 
                }
                else
                {
                    MessageBox.Show("文件不存在");
                }
            }
            catch (Exception q)
            {
                MessageBox.Show(q.Message);
            }
        }
        /// 
        /// 覆盖写入
        /// 
        public void coverWrite(string str)
        {
            File.WriteAllText(Global.Global.file_str,str);
        }
        /// 
        /// 追加写入
        /// 
        public void appendWrite(string str)
        {
            StreamWriter sw = File.AppendText(Global.Global.file_str);
            // 文件写入不换行
            //sw.Write(str);
            // 文件写入换行
            sw.WriteLine(str);
            // 关闭文件流
            sw.Close();
        }
 
        /// 
        /// 获取文件信息
        /// 
        private void getFileInfo_Click(object sender, EventArgs e)
        {
            try
            {
                // 实例化fileinfo类
                FileInfo ff = new FileInfo(Global.Global.file_str);
                // 文件路径
                Global.Global.filePath = ff.DirectoryName;
                filePath.Text = Global.Global.filePath;
 
                // 文件大小
                /*Int32 files = (Int32)ff.Length;
                double xx = files / 1024;
                Global.Global.fileSize = System.Math.Ceiling(xx);
                fileSize.Text = Global.Global.fileSize.ToString();//*/
                Global.Global.fileSize = System.Math.Ceiling(ff.Length / 1024.0).ToString();
                fileSize.Text = Global.Global.fileSize + "KB" ;
 
                //文件创建时间
                Global.Global.fileCreateTime = ff.CreationTime.ToString();
                createTime.Text = Global.Global.fileCreateTime;
 
                // 文件修改时间
                Global.Global.fileUpdateTime = ff.LastWriteTime.ToString();
                updateTime.Text = Global.Global.fileUpdateTime;
            }
            catch (Exception q)
            {
               MessageBox.Show(q.Message);
            }
        }
        /// 
        /// 获取文件名(指定路径)
        /// 
        private void getFileName_Click(object sender, EventArgs e)
        {
            try
            {
                Global.Global.fileName = Path.GetFileName(Global.Global.file_str);
                fileNames.Text = Global.Global.fileName;
            }
            catch (Exception q)
            {
                MessageBox.Show(q.Message);
            }
        }
 
        /// 
        /// 获取电脑信息
        /// 
        private void getComputerInfo_Click(object sender, EventArgs e)
        {
            try
            {
                Global.Global.computerName = System.Environment.UserName;
                label_computerName.Text = Global.Global.computerName;
 
                Global.Global.computerSystem = System.Environment.OSVersion.ToString();
                label_System.Text = Global.Global.computerSystem;
 
                Global.Global.socNum = System.Environment.ProcessorCount.ToString();
                label_socNum.Text = Global.Global.socNum;
            }
            catch (Exception q)
            {
               MessageBox.Show(q.Message);
            }
        }
 
       
    }
}

Global.cs

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Global
{
    /// 
    /// 存放全局变量的类
    /// 
    public class Global
    {
        /// 
        /// 文件夹路径
        /// 
        public static string dir_str = @"F:codeFiles";
        /// 
        /// 文件路径
        /// 
        public static string file_str = @"F:codeFilesfile.txt";
        /// 
        /// 文件内容
        /// 
        public static string content = "";
        /// 
        /// 是否覆盖写入标识
        /// 
        public static bool radioChoose = true;
        /// 
        /// 文件大小
        /// 
        public static string fileSize;
        /// 
        /// 文件路径
        /// 
        public static string filePath;
        /// 
        /// 文件创建时间
        /// 
        public static string fileCreateTime;
        /// 
        /// 文件修改时间
        /// 
        public static string fileUpdateTime;
        /// 
        /// 文件名
        /// 
        public static string fileName;
        /// 
        /// 电脑名称
        /// 
        public static string computerName;
        /// 
        /// 电脑系统
        /// 
        public static string computerSystem;
        /// 
        /// 电脑核心数
        /// 
        public static string socNum;
    }
}

有好的建议,请在下方输入你的评论。

欢迎访问个人博客
https://guanchao.site

欢迎访问小程序:

C#(三十六)之文件夹、路径、环境特殊目录类_第1张图片

你可能感兴趣的:(C#,后端,c#,开发语言,服务器)