首页
学习
活动
专区
工具
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对象获取驱动器号,并且可以根据实际需要进行扩展和修改。

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

相关·内容

  • ie浏览器activexobject_ie8 object.defineproperty

    JavaScript中ActiveXObject对象是启用并返回 Automation 对象的引用,javaScript中利用ActiveXObject来创建FileSystemObject操作文件。 一、功能实现核心:FileSystemObject 对象 要在javascript中实现文件操作功能,主要就是依靠FileSystemobject对象。 二、FileSystemObject编程 使用FileSystemObject 对象进行编程很简单,一般要经过如下的步骤: 创建FileSystemObject对象、应用相关方法、访问对象相关属性 。 (一)创建FileSystemObject对象 创建FileSystemObject对象的代码只要1行: var fso = new ActiveXObject(“Scripting.FileSystemObject”); 上述代码执行后,fso就成为一个FileSystemObject对象实例。 (二)应用相关方法 创建对象实例后,就可以使用对象的相关方法了。比如,使用CreateTextFile方法创建一个文本文件: var fso = new ActiveXObject(“Scripting.FileSystemObject”); var f1 = fso.createtextfile(“c:\\myjstest.txt”,true); (三)访问对象相关属性 要访问对象的相关属性,首先要建立指向对象的句柄,这就要通过get系列方法实现:GetDrive负责获取驱动器信息,GetFolder负责获取文件夹信息,GetFile负责获取文件信息。比如,指向下面的代码后,f1就成为指向文件c:\test.txt的句柄: var fso = new ActiveXObject(“Scripting.FileSystemObject”); var f1 = fso.GetFile(“c:\\myjstest.txt”); 然后,使用f1访问对象的相关属性。比如: alert(“File last modified: ” + f1.DateLastModified); 执行上面最后一句后,将显示c:\myjstest.txt的最后修改日期属性值。 但有一点请注意:对于使用create方法建立的对象,就不必再使用get方法获取对象句柄了,这时直接使用create方法建立的句柄名称就可以: var fso = new ActiveXObject(“Scripting.FileSystemObject”); var f1 = fso.createtextfile(“c:\\myjstest.txt”,true); alert(“File last modified: ” + f1.DateLastModified); 三、操作驱动器(Drives) 使用FileSystemObject对象来编程操作驱动器(Drives)和文件夹(Folders)很容易,这就象在Windows文件浏览器中对文件进行交互操作一样,比如:拷贝、移动文件夹,获取文件夹的属性。 (一)Drives对象属性 Drive对象负责收集系统中的物理或逻辑驱动器资源内容,它具有如下属性: TotalSize:以字节(byte)为单位计算的驱动器大小。 AvailableSpace或FreeSpace:以字节(byte)为单位计算的驱动器可用空间。 DriveLetter:驱动器字母。 DriveType:驱动器类型,取值为:removable(移动介质)、fixed(固定介质)、network(网络资源)、CD-ROM或者RAM盘。 SerialNumber:驱动器的系列码。 FileSystem:所在驱动器的文件系统类型,取值为FAT、FAT32和NTFS。 IsReady:驱动器是否可用。 ShareName:共享名称。 VolumeName:卷标名称。 Path和RootFolder:驱动器的路径或者根目录名称。 (二)Drive对象操作例程 下面的例程显示驱动器C的卷标、总容量和可用空间等信息: var fso, drv, s =””; fso = new ActiveXObject(“Scripting.FileSystemObject”); drv = fso.GetDrive(fso.GetDriveName(“c:\\”)); s += “Drive C:” + ” – “; s += drv.VolumeName + “\n”; s += “Total Space: ” + drv.TotalSize / 1024; s += ” Kb” + “\n”; s += “Free Space: ” + drv.F

    01

    python 文件和路径操作函数小结

    1: os.listdir(path) //path为目录  功能相当于在path目录下执行dir命令,返回为list类型  print os.listdir('..')  2: os.path.walk(path,visit,arg)  path :是将要遍历的目录  visit :是一个函数指针,函数圆形为:  callback(arg,dir,fileList)  其中arg为为传给walk的arg , dir是path下的一个目录,fileList为dir下的文件和目录组成的list, arg:传给visit用的  3:os.path.split(path)  path 为一个路径,  输出,把path分成两部分,具体看实例:  print os.path.split("abc/de.txt")  ('abc', 'de.txt')  os.path.split("abc")  (", 'abc')  print os.path.split("de/abc/de")  ('de/abc', 'de')  4: os.path.splitext(filename)  把文件名分成文件名称和扩展名  os.path.splitext(abc/abcd.txt)  ('abc/abcd', '.txt')  5: os.path.dirname(path)  把目录名提出来  print os.path.dirname("abc")  #输出为空  print os.path.dirname('abc\def')  abc  6: os.path.basename(filename)  取得主文件名  print os.path.basename('abc')  abc  print os.path.basename('abc.txt')  abc  print os.path.basename('bcd/abc')  abc #这个需要注意不包括目录名称  print os.path.basename('.')  .  7:os.mkdir(path, [mode])  path为目录名: 这里有个要求,只能创建一级目录  比如path为 abc/def 则当前目录下必须存在abc 否则失败  8: os.makedirs(path [,mode])  可以创建多级目录  9:os.remove(path)删除一个文件,一定是一个文件  os.removedirs(path) 删除一个目录下所有东西  os.rmdir(path) 删除一个目录,而且一定要空,否则os.errer  10:os.walk(path)  遍历path,返回一个对象,他的每个部分都是一个三元组  ('目录x',[目录x下的目录list],目录x下面的文件)  举例:  a = os.walk('.')  for i in a:  print i  11:shutil.copy(src,dst)  把文件src内容拷贝到文件dst中。,目标区域必须可以写,如果dst存在,则dst被覆盖  ――――――――――――――――――  11.1 os.path -- 普通的路径名操作  这个模块实现一些在路径名称上有用的函数。  警告:在 Windows 上,这些函数中的多个不能正确地支持 UNC 路径名。splitunc() 和 ismount() 可以正确地处理它们。  abspath(path)  返回 path 路径名一个规格化的绝对化的版本。在大多数平台上,相当于normpath(join(os.getcwd(), path))。1.5.2版本中的新特性。  basename(path)  返回 path 路径名最底部的名称。这是由 split(path)返回的对的第二半部分。注意这个函数的结果不同于Unix basename 程序;UNIX的 basename对于'/foo/bar/' 返回 'bar',basename() 函数返回一个空字符串('')。  commonprefix(list)  返回最长的路径前缀(采取字符的字符),是 list中所有路径的一个前缀。如果 list 为空,返回空字符串('')。注意可以返回无效的路径因为它每次操作一个字符。  dirname(path)  返回 path 路径名的目录名称。这是由 split(path)返回的对的第一半部分。  exists(path)  如果 path 与一个已存在的路径关联返回True。对于损坏的符号连接返回 False 。在一些平台上,如果权限没有被授予在请求的文件上执行os.stat()这个函数可能返回False,即使该 path 实际上存在。  lexists(path)  如果 path 与一个已存在的路径关联返回 True 。对于损坏的连接返回 True

    02
    领券