由于项目需要,用于更新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);
}
}
}
}
全盘扫描后的结果: