C# 程序检查路径是目录还是文件

csharpserver side programmingprogramming更新于 2025/9/18 11:34:00

简介

让我们学习如何编写 C# 程序来检查路径是目录还是文件。目录,也称为文件夹,是计算机上可以保存文件的地方。除了文件之外,目录还包含其他目录或快捷方式。

文件是驱动器上具有唯一标识符和目录路径的数据集合。当打开文件进行查看或写入时,它会转换为流。流只是遍历通信路由的字节序列。

文件与目录

文件是真实的数据文件,而目录是系统上逻辑文件放置的存储库。为了处理文件和目录,公共语言运行时 (CLR) 在 System.IO 命名空间中具有类 File、FileInfo、Directory 和 DirectoryInfo。

要在 C# 中处理目录,我们可以使用 Directory 或 DirectoryInfo。Directory 类是一个静态类,具有用于处理目录的静态函数。此类不能被继承。DirectoryInfo 实例提供有关特定目录的信息。

文件夹有一个文件类和一个文件信息类。File 类用于常见任务,例如复制、移动、重命名、创建、打开、删除和添加到单个文件。File 类还可用于获取和更改与文件创建、访问和写入相关的文件特征或 DateTime 信息。File 和 FileInfo 类具有相同的基本功能。

唯一的区别是 File 类具有用于处理文件的固有方法,而 FileInfo 类具有用于处理文件的实例方法。

Public static bool Exists (string? path); 用于检查文件或目录是否存在。这里的参数是 string? path。要检查的路径。它的返回类型是布尔值。此函数为布尔值的原因是,检查路径时只有两种结果。文件或目录存在或不存在,与函数的关键字非常相似。因此,如果目录或文件存在,则返回 true;如果不存在,或者在尝试访问地址时发生任何类型的错误(例如地址损坏等),则返回 false。

算法

下面的算法将逐步介绍编写程序来检查给定的路径是目录还是文件。

步骤 1 − 首先,我们必须声明一个字符串,其中包含我们要检查的地址,无论是文件还是目录

步骤 2 − 然后必须进行条件检查,我们使用方法 public static bool Exists (string? path); 来检查文件是否存在。

步骤 3 − 程序员可以完全决定他首先要检查什么。他是否想将路径检查为文件还是目录。

步骤 4 − 如果路径未通过两项检查,则输出为无效路径,并显示为消息。

示例

// 对于 File.Exists、Directory.Exists
using System;
using System.IO;
class ttpt {
   static void Main() {
    string PathCheck = "D:/ipl";
    
    // 在这里我们检查输入路径是否为文件
    if(File.Exists(PathCheck)) {
    
    // 如果提供的路径为文件
    Console.WriteLine("此路径上存在文件");
    }
    
    // 在这里我们检查输入的路径是否为目录
    else if(Directory.Exists(PathCheck)) {
    
    // 此输入路径为目录
    Console.WriteLine("此路径上存在目录");
    }
    
    // 如果它无效,即它既不是目录也不是路径
    else {
    Console.WriteLine("{0} 无效。输入既不是文件也不是目录。", path);
    }
   }
}

输出

此路径上存在文件

上述代码用于检查提供的路径是否为文件。首先,在代码中,我们声明了一个字符串来存储地址,以检查它是文件还是目录。然后我们使用 public static bool Exists (string? path); ,它可以与 File 和 Directory 类一起使用,通过使用相应的类关键字来检查文件或目录是否存在。这可以通过使用条件检查来完成。如果想要进行批量检查,则可以通过创建一个类将地址数组作为参数传递。然后逐一检查它们。由于 public static bool Exists (string? path); 返回布尔值,这就是我们进行条件检查的原因。

在验证目录是否存在之前,会从路径参数的结论中删除尾随空格。

路径参数的大小写敏感性与代码正在执行的文件系统相关。例如,NTFS(通常的 Windows 文件系统)不区分大小写,而 Linux 文件系统区分大小写。

时间复杂度

在声明字符串后的算法中。 public static bool Exists (string? path); 方法是布尔返回方法。因为它直接对我们正在搜索的元素进行一次调用,所以该算法的时间复杂度为 O(1)。

结论

所以,我们已经到了文章的结尾,我们已经学习了如何检查提供的路径是目录还是文件。我们从文件和目录的定义开始,然后我们继续前进,看到了文件和目录之间的区别。然后我们理解了程序的算法,之后我们看到了检查路径的程序。我们希望本文能增强您对 C# 的了解。


相关文章