如何检查路径是否引用本地文件对象

本文关键字:引用 文件 对象 是否 路径 何检查 检查 | 更新日期: 2023-09-27 18:35:45

我试图找出某个任意路径是否引用本地文件系统对象,而不是位于网络共享或可移动驱动器上的路径。有什么方法可以在 .NET 中执行此操作吗?

附言。换句话说,如果我有硬盘驱动器 C: 和 D: 并且驱动器 E: 是 DVD 驱动器或 USB 闪存驱动器,那么:

以下路径将是本地路径:

C:'Windows
D:'My Files'File.exe

以下路径将不是:

E:'File on usb stick.txt
''computer'file.ext

如何检查路径是否引用本地文件对象

using System;
using System.IO;
namespace random
{
    class Program
    {
        static void Main(string[] args)
        {
            DriveInfo[] allDrives = DriveInfo.GetDrives();
           //TEST HERE
            bool isFixed = allDrives.First(x=>x.Name == "D").DriveType == DriveType.Fixed
            foreach (DriveInfo d in allDrives)
            {
                Console.WriteLine("Drive {0}", d.Name);
                Console.WriteLine("  File type: {0}", d.DriveType);
                if (d.IsReady == true)
                {
                    Console.WriteLine("  Volume label: {0}", d.VolumeLabel);
                    Console.WriteLine("  File system: {0}", d.DriveFormat);
                    Console.WriteLine(
                        "  Available space to current user:{0, 15} bytes",
                        d.AvailableFreeSpace);
                    Console.WriteLine(
                        "  Total available space:          {0, 15} bytes",
                        d.TotalFreeSpace);
                    Console.WriteLine(
                        "  Total size of drive:            {0, 15} bytes ",
                        d.TotalSize);
                }
                Console.Read();
            }
        }
    }
}

您需要 DriveInfo 类,特别是 DriveType - 枚举说明:

属性指示驱动器是否为以下任何驱动器:CDRom、 固定、未知、网络、无根目录、RAM、可移动或未知。