首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

从路径字符串或FileInfo获取驱动器号

从路径字符串或FileInfo获取驱动器号是一种常见的操作,它可以帮助我们快速地获取文件或目录所在的驱动器。以下是一个简单的示例,说明如何从路径字符串或FileInfo获取驱动器号。

代码语言:csharp
复制
using System;
using System.IO;

class Program
{
    static void Main(string[] args)
    {
        string path = @"C:\Users\Public\Documents\MyFile.txt";
        string driveLetter = GetDriveLetterFromPath(path);
        Console.WriteLine($"驱动器号:{driveLetter}");

        FileInfo fileInfo = new FileInfo(path);
        driveLetter = GetDriveLetterFromFileInfo(fileInfo);
        Console.WriteLine($"驱动器号:{driveLetter}");
    }

    static string GetDriveLetterFromPath(string path)
    {
        string driveLetter = string.Empty;
        if (Path.IsPathRooted(path))
        {
            driveLetter = Path.GetPathRoot(path);
        }
        return driveLetter;
    }

    static string GetDriveLetterFromFileInfo(FileInfo fileInfo)
    {
        string driveLetter = string.Empty;
        if (fileInfo.FullName.Length >= 2)
        {
            driveLetter = fileInfo.FullName.Substring(0, 2);
        }
        return driveLetter;
    }
}

在这个示例中,我们定义了两个方法:GetDriveLetterFromPathGetDriveLetterFromFileInfoGetDriveLetterFromPath方法接受一个路径字符串作为参数,使用Path.GetPathRoot方法获取驱动器号。GetDriveLetterFromFileInfo方法接受一个FileInfo对象作为参数,直接从FullName属性中获取驱动器号。

Main方法中,我们首先定义了一个路径字符串,然后调用GetDriveLetterFromPath方法获取驱动器号,并将其输出到控制台。接着,我们使用路径字符串创建了一个FileInfo对象,并调用GetDriveLetterFromFileInfo方法获取驱动器号,并将其输出到控制台。

这个示例演示了如何从路径字符串或FileInfo对象获取驱动器号,并且可以根据实际需要进行扩展和修改。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

路径,文件,目录,IO常见操作汇总

该类提供了一套方法和属性用于对包含文件目录路径信息的字符串执行操作,这些操作是以跨平台的方式执行的,而这些方法和属性都是静态的。     注意路径仅仅是提供文件目录位置的字符串。...路径不必指向磁盘上的位置,例如,路径可以映射到内存中设备上的位置。路径的准确格式是由当前平台确定的。例如,在某些系统上,路径可以驱动器开始,而此元素在其他系统中是不存在的。...例如,在基于 Windows 的桌面平台上,无效路径字符可能包括引号 (")、小于 ()、管道符号 (|)、退格 (/b)、空 (/0) 以及 16 到 18 和 20 到 25...:获取文件所在目录,返回类型为DirectoryInfo;     FileInfo.DirectoryName:获取文件所在目录的路径(完整路径);     FileInfo.Length:获取文件的大小...Read方法读取单个字符或者指定个数的字符,返回类型为字符字符数组;ReadLine方法则返回包含整行内容的字符串;ReadToEnd方法当前位置读取至流的结尾。

1.5K40

C#学习笔记 文件操作

Directory和File类是两个静态类,可以静态地获取文件和文件夹的信息而无需实例化对象,这在只对某个文件或者文件夹执行一次操作的时候是很有用的。...Path也是一个静态类,为路径操作提供了各种方法。...DirectoryInfo和FileInfo类是两个可以实例化的类,在实例化的时候有一些开销,但是实例化之后对某个文件文件夹进行大量操作的话就基本没有开销了。...DriveInfo是一个与驱动器有关的类。 Directory和File类 Directory和File是两个静态类,当只对文件对象执行一次几次操作的时候很有用。...FileStream既可以直接构造函数中创建,也可以由一个FileInfo对象创建。相应的,FileInfo中也有对应的Create方法和Open方法,用来创建对应的文件流。

43210
  • C# 基础知识系列- 17 实战篇 编写一个小工具(1)

    简单来讲就是,分两步: 抓取系统可以访问的所有文件,并保存其全路径 根据输入的参数查询文件的全路径 需求分析完了,然后寻找可以实现的技术,我们现有的技术有IO、文件/路径操作、任务模式等技术,那么可以供我们选择的技术一目了然了...再看一下属性: public string Name { get; }// 获取驱动器的名称,如 C:\。...public System.IO.DirectoryInfo RootDirectory { get; }// 获取驱动器的根目录。...DriveInfo.GetDrives(); return drives.Select(p=>p.RootDirectory).ToList(); } 然后回到方法OverDirectories里,先获取所有的驱动器...{ Console.WriteLine($"错误信息:{e}");//打印错误信息 } return dict; } 最后修改 Main方法,使其支持使用用户输入的字符串进行查询

    1.8K40

    11.8 实现重置文件时间戳

    11.8.1 切割文件名与路径 如下代码是一段文件路径切割实现,通过传入文件路径获取文件名和文件路径的功能。具体实现包括两个函数:GetFileName和GetFilePath。...前者接收一个文件路径字符串,并返回该文件路径中的文件名;后者接收一个文件路径字符串,并返回该文件路径中除文件名以外的部分,即文件路径。...在main函数中,首先定义了两个文件路径字符串szPathA和szPathB。然后,分别调用GetFileName和GetFilePath函数,将它们的返回值保存在指针变量ptr中,并输出到控制台上。...fileinfo:指向finddata_t结构的指针,用于存储找到的下一个文件的信息。 返回值: 如果成功,返回 0;如果失败到达目录尾部,返回 -1。...在Windows和许多其他操作系统中,这些时间戳通常以 FILETIME 结构体的形式存储,该结构体表示1601年1月1日午夜开始计算的100纳秒间隔数。

    23420

    浅谈.Net Framework中实现的文件操作(一)

    LastWriteTime; //表明文件或者路径是否存在 bool Exists; //获取表示文件扩展名部分的字符串。...目录对象返回空字符串。 string Extension; //获取文件或者目录的完整路径 string FullName; //如果是文件对象,获取文件名(包含后缀名)。...FileInfo类的构造函数: //通过传入一个文件路径,可以初始化一个FileInfo对象。...Delete(bool recursive); //创建一个目录 void Create(); void Create(DirectorySecurity directorySecurity); //在指定路径上创建一个多个子目录...// 删除这个目录和里面的所有子项 //directoryInfo.Delete(true); // 创建目录,已经存在则自动跳过 //directoryInfo.Create(); //在指定路径上创建一个多个子目录

    56010

    C#文件安全管理解析

    System.Environment:用来枚举驱动器。(不能获取驱动器的属性)         System.Management:.NET针对WMI调用。        ...objFi = new FileInfo(filePath); str += "详细路径:" + objFi.FullName + "文件名称:" + objFi.Name...文件的索引记录了文件在磁盘中的位置信息,当执行删除操作时,只是文件分配聊表中删除了目录。        那么可能会有人问,怎么讲文件彻底的删除呢?...第二轮,通过磁盘操作WindowsAPI找到原始文件目录在FAT表中的位置,将原始文件目录在FAT表中项清零。...第三轮,通过磁盘操作WindowsAPI,找到原始文件目录在备份FAT表的位置,将原始文件目录在备份FAT表中的表项清零。

    1.6K111

    C# 基础知识系列- 14 IO篇之 文件操作(01)

    路径是指文件文件夹所在的位置的字符串表示,有相对路径和绝对路径,有物理路径和网络路径等一系列这些划分。...相对路径指的是,相对程序所在目录目标文件所在的目录路径 绝对路径指的是系统或者网站的目录起点开始文件所在的位置,也就是说无论程序在哪都能通过绝对路径访问到对应文件 物理路径是指文件在磁盘的路径,划分依据与之前的两种并不一致...,所以不是并列关系 网络路径是指网络文件是在网络服务上部署的,通过URI访问的路径信息 好了,基本概念介绍到这里,让我们来看看如何实现C#操作文件吧。...好,现在我们已经可以获取一个FileInfo对象实例了,那么一起来看看FileInfo支持哪些内容吧: a....public string DirectoryName { get; } 获取文件所在目录的完整路径(绝对路径)。

    74520

    新型勒索病毒软件GruxEr来袭:深度分析如何传播、加密及如何删除

    其主要原因是蠕虫与其他恶意软件不同,可能会通过网络的开放端口计算机自动生成请求,计算机自动传播到计算机。...然后,我们建议遵循以下步骤: 1.您的计算机上下载一个闪存驱动器引导的实时操作系统。...它应该显示为“可移动磁盘”“本地驱动器”,其中包含驱动器,而不是原始驱动器。(例如:G :, E :, F:) ? 步骤4:复制你的文件。...如果您将所有重要文件保存在一个分区中,并且无法在主驱动器上找到它们,则应转到以下位置访问您的配置文件: DriveLetter:\Users\{Username}\ 驱动器:\用户\ {用户名} \...右上角的搜索栏可以输入屏幕保护程序的注册表字符串名称。当你删除它,你可以删除锁屏。 然后,您可以重新启动计算机并删除恶意软件。删除GruxEr的最佳方法是使用高级反恶意软件软件扫描计算机。

    1.3K60

    11.9 实现磁盘相关操作

    11.9.1 遍历磁盘容量 如下代码实现了在Windows系统中获取所有磁盘驱动器的信息。具体包括两个函数,一个用于获取驱动器类型,另一个用于获取驱动器空间信息。...int argc,char *argv[]) { DWORD dwSize = MAX_PATH; char szLogicalDrives[MAX_PATH] = {0}; // 获取逻辑驱动器字符串...count << std::endl; DWORD dwSize = MAX_PATH; char szLogicalDrives[MAX_PATH] = { 0 }; // 获取逻辑驱动器字符串...endl; } std::system("pause"); return 0; } 11.9.3 实现磁盘格式化 如下代码定义了一个函数FormatDisk,用于格式化由指定为字符串驱动器标识的磁盘...代码首先定义了一个 DeleteVolume 函数,接收一个指向字符串的指针,表示要删除的磁盘驱动器的盘符。

    22830

    文件系统特殊命令一览表

    PathName---指定驱动器(冒号分隔)、装入点卷名 length---指定文件的有效数据长度 findbysid---查找属于特定用户的NTFS 卷上的文件。...(后面接冒号) VolumePathname 指定驱动器(冒号分隔)、装入点卷名 基础示例: #1.要卸下驱动器 C 上的卷,请键入: fsutil volume dismount C: #2...如果命令扩展被启用,除了一般驱动器路径,PUSHD命令还接受网络路径。 如果指定了网络路径,PUSHD 将创建一个指向指定网络资源的临时驱动器,然后再用刚定义的驱动器更改当前的驱动器和目录。...可以 Z: 往下分配临时驱动器,使用找到的第一个没有用过的驱动器。...POPD命令 描述:更改到 PUSHD 命令存储的目录 POPD 如果命令扩展被启用,推目录堆栈 POPD 驱动器时,POPD命令会删除 PUSHD 创建的临时驱动器

    86020

    文件系统特殊命令一览表

    PathName---指定驱动器(冒号分隔)、装入点卷名 length---指定文件的有效数据长度 findbysid---查找属于特定用户的NTFS 卷上的文件。...(后面接冒号) VolumePathname 指定驱动器(冒号分隔)、装入点卷名 基础示例: #1.要卸下驱动器 C 上的卷,请键入: fsutil volume dismount C: #2...如果命令扩展被启用,除了一般驱动器路径,PUSHD命令还接受网络路径。 如果指定了网络路径,PUSHD 将创建一个指向指定网络资源的临时驱动器,然后再用刚定义的驱动器更改当前的驱动器和目录。...可以 Z: 往下分配临时驱动器,使用找到的第一个没有用过的驱动器。...POPD命令 描述:更改到 PUSHD 命令存储的目录 POPD 如果命令扩展被启用,推目录堆栈 POPD 驱动器时,POPD命令会删除 PUSHD 创建的临时驱动器

    1K42

    批处理 %~0_批处理输入

    %~dp0 “d”为Drive的缩写,即为驱动器,磁盘、“p”为Path缩写,即为路径,目录 cd是转到这个目录,不过我觉得cd /d %~dp0 还好些 %~dp0 “d”为Drive的缩写,即为驱动器...f0 - 将 %0 扩充到一个完全合格的路径名(“f”是file,即文件) %~d0 - 仅将 %0 扩充到一个驱动器 %~p0 - 仅将 %...- 仅将 %0 扩充到一个驱动器路径 %~nx0 - 仅将 %0 扩充到一个文件名和扩展名 %~fs0 - 仅将 %0 扩充到一个带有短名的完整路径名...%~dp$PATH:0 - 查找列在路径环境变量的目录,并将 %I 扩充 到找到的第一个驱动器路径。...~n0 pause 5、获取批处理自身的后缀名 @echo off echo %~x0 pause 6、获取批处理自身的完整路径,不含文件名 @echo off echo %~dp0 pause

    1.9K20

    ASP.NET虚拟主机的重大安全隐患

    DriversGrid.DataSource = CreateDataSource(); //将此DataGrid进行数据绑定 DriversGrid.DataBind(); 通过上边介绍的几种主要方法我们就实现了获取系统信息和显示所有逻辑驱动器名称的功能...Request.QueryString["dir"]; 字符串strDir2List即传过来的目录名文件名。...删除子目录和文件的主要方法和代码: 在删除子目录时,我们需要用到Directory.Delete (string,bool)方法,此方法有两种: 1.public static void Delete(string); 指定路径删除空目录...["file"]; //根据文件名实例化一个FileInfo对象 FileInfo fi = new FileInfo(strFile2Show); FileDetail.Text = "文件名:";...在文件IO的权限设置中我们可以自定义针对每一个目录的权限,这里包括读、写、追加、路径盘等操作,在这里我们可以将我们需要的目录权限添加到列表中。

    1.8K20

    C# 学习笔记(19)—— 文件操作

    类型,用于向文件追加文本 Create 在指定路径下创建覆盖文件 Delete 删除指定文件 Exists 检查指定的文件是否存在 Open 指定特有的读、写访问权限打开文件 OpenRead 以读取的方式打开现有文件...OpenWrite 打开创建一个现有文件,以写入文本 ReadAllText 读取文件的所有行,然后关闭文件 WriteAllText 向现有文件创建的新文件中,写入指定的字符串,然后关闭文件...Position 获取设置当前流中的位置 BeginRead 开始异步读操作 BeginWrite 开始异步写操作 Close 关闭当前流并释放与之关联的所有资源,如文件句柄资源等 EndRead...向当前流写入字节序列,并将流的当前位置设置为写入字节数 以下 Stream 派生类是我们经常会用到的 NetworkStream——提供网络通信的基础数据流 FileStream——用于将数据以流的形式写入文件,文件中读取...这些类通常是成对出现的:一个用于流中读取数据,另一个用于向流中写入数据。

    23220
    领券