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

摘要:
=null&&i˂fileFolds.Length;i++){try{SerchFile;//递归搜索子文件夹}catch{Console.WriteLine;continue;}}FileInfo[]files=path.GetFiles();//获取指定文件夹下的所有文件for(inti=0;files!=null&&i˂files.Length;i++)//将文件信息添加到List里面{try//每个驱动盘会有一些特定的格式信息,不允许程序访问,如果要访问,则会出现错误{//故,要跳过这些非文件信息FInfofinfo=newFInfo;AddFile;}catch{Console.WriteLine;continue;}}}publicvoidSerchFile//搜索文件夹下所有扩展名为fe的文件{//DirectoryInfofileFold=newDirectoryInfo;if(!path.Exists){Console.WriteLine;return;}DirectoryInfo[]fileFolds=path.GetDirectories();//获取指定文件夹下的所有子文件夹for(inti=0;fileFolds!
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);
            }
        }
    }
}

免责声明:文章转载自《C#获取指定路径下的文件信息》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇springmvc/springboot开发restful API, 使用MockMVC 编写测试用例Java生成-zipf分布的数据集(自定义倾斜度,用作spark data skew测试)下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

随便看看

docker run hangs问题排查记录

1.故障描述过去两天遇到了一个非常奇怪的问题。现在完整的故障描述如下:1)首先,我的同事告诉我,K8S集群中的一个工作节点将其状态更改为NoReady,并且在节点kubelet_truntime的错误日志中发现了大量此类日志E060301:50:51.45511776268remote。go:332]ExecSync1f0e3ac13faf224129bc4...

DB2字符函数简介及使用

Param2可以是编码单元16-16位UTF-16编码,也就是说,字符串表示为16位UTF-18编码字符串。Codeunits32-32位UTF-32编码,即字符串表示为32位UTF 32编码字符串。请注意,定义为FORBITDATA的字符串不能转换为图形字符。如果length<length,则来自的原始字符串短于结果中的长度。...

IDEA(MAC) 快捷键

从日食到IDEA;从Windows到MAC,我不习惯录制一些日常使用的快捷键。1.格式代码命令+alt+L2。导出包alt+entercontrol+alt+O3。自动生成此类型的对象命令+alt+V4。复制命令行+d5。上下移动一行代码shift+alt+上/下箭头6。上下移动代码Shift+Command+上下键6。生成foreacher7。生成列表遍历...

sql server 日志软件过大设置办法

在使用sqlserver的过程中,sql日志文件的大小将随着其增长而受到限制。1.找到相应的库--˃属性--˃恢复模式,并将其更改为简单模式。2.选择库--˃任务--˃收缩--˃文件。3.选择日志文件收缩或数据库文件收缩。删除命令后占用的空间将在此处释放。数据库ldf文件的占用空间将更改为设置的空间大小。...

DB2锁表或超时解决方案

命令如下:db2"forceapplication"4、使用命令listapplication查看是否已经断开了哪些进行了死锁的进程。...

Axure RP 8 注册码 更新了

升级8.1.0.3381后,您需要使用以下注册码http://www.raedme.cn/keys/316.htmlLicense:zdfansKey:fZw2VoYzXakllUuLVdTH13QYWnjD6NZrxgubQkaRyxD5+HNMqdr+WZKkaa6IoE5N许可证:zd423Key:LrZoHMetrL7OK8XOVWgvTFn+XOR...