• C#获取指定路径下的文件信息


    using System;
    using System.Collections;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.IO;
    namespace Example
    {
        public struct FInfo      //文件信息结构
        {
            public string filePath;      //文件路径
            public string fileName;       //文件名
            public string fileExtension;    //文件扩展名
            public FInfo(string fp, string fn, string fe)
            {
                this.filePath = fp;
                this.fileName = fn;
                this.fileExtension = fe;
            }
        }
        public class FileManage    //文档管理类
        {
            public List<FInfo> fileSour = new List<FInfo>();  //声明一个存储文件的列表
            public void AddFile(FInfo fi)      //将一个文件加入列表
            {
                fileSour.Add(fi);
            }
            public void RemoveFile(FInfo fi)  //删除一个文件
            {
                fileSour.Remove(fi);
            }
            public void SerchFile(DirectoryInfo path)         //搜索指定路径下的所有文件
            {
                //DirectoryInfo fileFold = new DirectoryInfo(path);
                if (!path.Exists)
                {
                    Console.WriteLine("不存在文件夹{0}", path);
                    return;
                }
                DirectoryInfo[] fileFolds = path.GetDirectories(); //获取指定文件夹下的所有子文件夹
                for (int i = 0; fileFolds != null && i < fileFolds.Length; i++)
                {
                    try
                    {
                        SerchFile(fileFolds[i]);  //递归搜索子文件夹
                    }
                    catch (Exception e)
                    {
                        Console.WriteLine(e.Message);
                        continue;
                    }
                }
                FileInfo[] files = path.GetFiles(); //获取指定文件夹下的所有文件  
                for (int i = 0; files != null && i < files.Length; i++)  //将文件信息添加到List里面
                {
                    try       //每个驱动盘会有一些特定的格式信息,不允许程序访问,如果要访问,则会出现错误
                    {         //故,要跳过这些非文件信息
                        FInfo finfo = new FInfo(files[i].FullName, files[i].Name, files[i].Extension);
                        AddFile(finfo);
                    }
                    catch (Exception e)
                    {
                        Console.WriteLine(e.Message);
                        continue;
                    }
                }
            }
            public void SerchFile(DirectoryInfo path, string fe)  //搜索文件夹下所有扩展名为fe的文件
            {
                //DirectoryInfo fileFold = new DirectoryInfo(path);
                if (!path.Exists)
                {
                    Console.WriteLine("不存在文件夹{0}", path);
                    return;
                }
                DirectoryInfo[] fileFolds = path.GetDirectories(); //获取指定文件夹下的所有子文件夹
                for (int i = 0; fileFolds != null && i < fileFolds.Length; i++)
                {
                    try
                    {
                        SerchFile(fileFolds[i]);  //递归搜索子文件夹
                    }
                    catch (Exception e)
                    {
                        Console.WriteLine(e.Message);
                        continue;
                    }
                }
                FileInfo[] files = path.GetFiles(); //获取指定文件夹下的所有文件  
                for (int i = 0; files != null && i < files.Length; i++)  //将文件信息添加到List里面
                {
                    try
                    {
                        if (files[i].Extension == fe)   //挑选出符合条件的信息
                        {
                            FInfo finfo = new FInfo(files[i].FullName, files[i].Name, files[i].Extension);
                            AddFile(finfo);
                        }
                        else
                        {
                            continue;
                        }
                    }
                    catch (Exception e)
                    {
                        Console.WriteLine(e.Message);
                        continue;
                    }
                }
            }
            public void SerchDiskInfo()      //获取磁盘信息
            {
                DriveInfo[] allDirves = DriveInfo.GetDrives();
                //检索计算机上的所有逻辑驱动器名称
                foreach (DriveInfo item in allDirves)
                {
                    //Fixed 硬盘
                    //Removable 可移动存储设备,如软盘驱动器或USB闪存驱动器。
                    Console.Write(item.Name + "---" + item.DriveType);
                    if (item.IsReady)
                    {
                        Console.Write(",容量:" + item.TotalSize + ",可用空间大小:" + item.TotalFreeSpace);
                    }
                    else
                    {
                        Console.Write("没有就绪");
                    }
                    Console.WriteLine();
                }
            }
        }
        class Program
        {
            static void Main()
            {
                FileManage fm = new FileManage();
                fm.SerchDiskInfo();
                Console.WriteLine("请输入所要查找的磁盘,如C:\");
                string filePath;
                filePath = Console.ReadLine();
                DirectoryInfo fileFold = new DirectoryInfo(filePath);
                fm.SerchFile(fileFold);
                for (int i = 0; i < 20; i++)
                {
                    Console.WriteLine("{0}", fm.fileSour[i].filePath);
                }
            }
        }
    }

  • 相关阅读:
    第4章-控制执行流程
    第3章-运算符
    第2章-对象
    第10章-内部类II
    第10章-内部类
    基于gtest、gmock、mockcpp和lcov的C语言LLT工程 —— LLT构造和lcov查看覆盖率实例
    字符设备驱动框架讲解
    基于Hadoop分布式集群YARN模式下的TensorFlowOnSpark平台搭建
    给 Virtualbox 中 Ubuntu 系统设置静态 IP
    小白请教几个关于Java虚拟机内存分配策略的问题
  • 原文地址:https://www.cnblogs.com/zztong/p/6695173.html
Copyright © 2020-2023  润新知