c#怎样根据文件名获取其所在的绝对路径

由于项目需要,用于更新pc端某些文件。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Collections;
using System.IO;


namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            String fileName = "JoinStar.API.dll";


            DriveInfo[] root = DriveInfo.GetDrives();//电脑所有盘符。
            for (int i = 0; i < root.Length; i++) {
                FindFile(root[i].ToString(), fileName);
            }
            Console.WriteLine("同名文件的数量:" + count); 
           
            for (int i = 0; i<filePathList.Count; i++) {
              Console.WriteLine(" 文件的绝对路径:"+ filePathList[i] );
            }
            while(true){}
        }


        public static ArrayList filePathList = new ArrayList();
        public static int count = 0;
        /// <summary>
        /// 3.遍历所有磁盘的文件夹
        /// </summary>
        /// <param name="path">文件名 </param>
        public static void FindFile(string path, string fileName) //参数fileName为指定的文件名。
        {
            DirectoryInfo info = new DirectoryInfo(path);


            try
            {  //获取文件
                FileInfo[] files = info.GetFiles();
                //show all files
                if (files != null && files.Length > 0)
                {
                    foreach (FileInfo file in files)
                    {                                               
                        if (file.FullName.IndexOf(fileName) > -1)
                        {
                            count = count+1;
                            filePathList.Add(file.FullName);
                            Console.WriteLine(" "+file.FullName );//获取目录或文件的完整目录。
                            //Console.WriteLine("同名文件的数量:" + count); 
                        }
                       
                    }
                }
                //获取文件夹
                DirectoryInfo[] directoies = info.GetDirectories();
                //show all sub directories
                if (directoies != null && directoies.Length > 0)
                {
                    foreach (DirectoryInfo d in directoies)
                    {
                        FindFile(d.FullName, fileName);
                    }
                }
            }
            catch (UnauthorizedAccessException ex)
            {
                //Console.WriteLine(ex.Message);
            }      
        }

    }
}

全盘扫描后的结果:

  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值