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

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

简介

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

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

文件与目录

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

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

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

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

公共静态 bool 是否存在(字符串?路径);用于检查文件或目录是否存在。这里参数是字符串?小路。这是要检查的路径。它的返回类型是布尔值。该函数为布尔值的原因是,当检查路径时,只有两个结果。文件或目录要么存在,要么不存在,就像函数的关键字一样。因此,如果目录或文件存在,则返回 true,如果不存在或尝试访问该地址时发生任何类型的错误(例如损坏的地址或更多),则返回 false。

算法

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

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

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

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

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

示例

// For File.Exists, Directory.Existsusing System;using System.IO;class ttpt {   static void Main() {      string PathCheck = “D:/ipl”;      // Here we check that the input path is a file      if(File.Exists(PathCheck)) {               // If the path provided is a file         Console.WriteLine(“A file exists on this path”);      }            // Here we check if the path as input is a directory      else if(Directory.Exists(PathCheck)) {               // This input path is a directory         Console.WriteLine(“A directory exists on this path”);      }            // If it is invalid i.e., it is neither directory nor a path      else {         Console.WriteLine("{0} is invalid. The input is neither a file nor a directory.", path);      }   }}

输出

A file exists on this 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# 的了解。

以上就是C# 程序检查路径是目录还是文件的详细内容,更多请关注创想鸟其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/1435190.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2025年12月17日 10:52:00
下一篇 2025年12月16日 01:45:29

相关推荐

  • C# 反转字符串的程序

    我们的示例字符串是 – myStr = “Tom”; 要反转字符串,首先找到字符串的长度 − // find string lengthint len;len = myStr.Length – 1; 现在,使用 while 循环,直到长度大于 0 – while (len &…

    2025年12月17日
    000
  • C# 中的静态方法与非静态方法

    Declare a member function as static. Such functions can access only static variables. The static functions exist even before the object is created. A …

    2025年12月17日
    000
  • C# 中的多重继承是什么?

    C#不支持多重继承的使用,但可以使用接口来实现。 下面是使用接口继承的实现。创建两个接口 – public interface BaseOne { void display();}public interface BaseTwo { void display();} 现在像设置派生类一样…

    2025年12月17日
    000
  • 如何在C#中声明和实例化委托?

    C# 委托类似于 C 或 C++ 中的函数指针。委托是一个引用类型变量,它保存对方法的引用。可以在运行时更改引用。 声明委托的语法 – delegate 现在让我们看看如何在 C# 中实例化委托。 声明委托类型后,必须使用 new 关键字创建委托对象并将其与特定方法关联。创建委托时,传递…

    2025年12月17日
    000
  • 什么是 Kestral C# Asp.net Core?

    Kestrel 是 ASP.NET Core 的跨平台 Web 服务器。 .NET Core 支持的所有平台和版本都支持它。 它默认作为内部服务器包含在 ASP.NET Core 中。 Kestrel 本身可以用作边缘服务器,即面向 Internet 的 Web 服务器,可以直接处理来自客户端的传入…

    2025年12月17日
    000
  • C# 中的重写和隐藏有什么区别?

    以下是重写和隐藏之间的区别 – 隐藏重新定义了完整的方法,而重写仅重新定义了方法的实现。 在重写中,您可以使用子类的对象重写方法来访问基类。影子无法访问子类方法。 阴影也称为方法隐藏。父类的方法可供子类使用,无需在遮蔽中使用 override 关键字。子类有自己版本的相同函数。 在重写下…

    2025年12月17日
    000
  • 检查 HashTable 集合是否为空的 C# 程序

    C#中的Hashtable集合是根据键的哈希码组织的键值对的集合。哈希码是使用哈希码函数计算的。 哈希表中的每个元素都是具有唯一键的键值对。键也必须是非空的。值可以为空和重复。 在本文中,我们将讨论如何检查哈希表集合是否为空。 如何检查哈希表集合是否为空? C#中实现哈希表集合的类是Hashtabl…

    2025年12月17日
    000
  • 将一个哈希表中的项目替换为另一个哈希表中的 C# 程序

    C# 中的哈希表集合是基于键的哈希码组织的键值对的非泛型集合。键用于访问哈希表集合中的元素。散列可以帮助我们有效地检索数据并消除对昂贵的数据搜索技术的需要。散列技术使用密钥本身来定位数据。该哈希表键是不可变的,并且哈希表中不允许出现重复的条目。 Hashtable类定义在System.Collect…

    2025年12月17日
    000
  • 如何使用 C# 获取人类可读的文件大小(以字节缩写为单位)?

    要获取目录,C# 提供了 Directory.GetDirectories 方法 Directory.GetDirectories 返回指定目录中与指定搜索模式匹配的子目录的名称(包括其路径),并可选择搜索子目录 为了获取文件,C# 提供了 Directory.GetFiles 方法 Directo…

    2025年12月17日
    000
  • C# 中的后台工作者类

    顾名思义,Background Worker 类允许您设置一个在后台持续运行的线程,并在需要时与主线程进行通信。 BackgroundWorker在 Windows 窗体中实现线程。密集型任务需要在另一个线程上完成,这样 UI 才不会冻结。任务完成后有必要发布消息并更新用户界面。 Backgroun…

    2025年12月17日
    000
  • 在 C# 中声明 const 数组

    在C#中,使用readonly来声明一个const数组。 public static readonly string[] a = { “Car”, “Motorbike”, “Cab” }; 在readonly中,与const不同的是,您也可以在运行时设置值。 实现上述内容的另一种替代方法是 − p…

    2025年12月17日
    000
  • 如何重载 C# 中的运算符?

    [] 运算符被称为索引器。 索引器允许对对象进行索引,例如数组。当您为一个类定义一个索引器时,该类的行为类似于一个虚拟数组。然后,您可以使用数组访问运算符([ ])访问该类的实例。 索引器可以被重载。索引器也可以声明多个参数,并且每个参数可以是不同的类型。索引不一定必须是整数。 示例1 static…

    2025年12月17日
    000
  • C# 中的静态构造函数是什么?

    静态构造函数是使用 static 修饰符声明的构造函数。它是类中执行的第一个代码块。这样,静态构造函数在类的生命周期中只执行一次。 以下是 C# 中静态构造函数的示例 – 示例 using System;using System.Collections.Generic;using Sys…

    2025年12月17日
    000
  • C# 中的 Console.TreatControlCAsInput 属性及示例

    在C#中,Console.TreatControlCAsInput属性是Console类的一个关键组成部分,它允许开发人员以更灵活的方式处理输入。本文将深入探讨Console.TreatControlCAsInput属性,帮助您了解其目的、用法,并提供实际示例。 了解 Console.TreatCo…

    2025年12月17日
    000
  • C# 中给定字符串中的单词反转

    假设以下是字符串 – Welcome 翻转字符串后,单词应该像 − 这样可见。 emocleW 使用reverse()方法并尝试以下代码来反转字符串中的单词 – 示例 using System;using System.Linq;class Demo { static voi…

    2025年12月17日
    000
  • C# 中的日志函数

    使用C#,您可以轻松地使用对数。它具有以下用于对数和以10为底的对数的方法。 序号 方法和描述 1Log(Double) 返回指定数字的自然(以e为底)对数。 2Log(Double, Double) 返回指定数字在指定底数下的对数。 3Log10(Double) 返回指定数字的以10为底的对数。 …

    2025年12月17日
    000
  • C# 中的对象池是什么?

    对象池是一种软件构造,旨在优化有限资源的使用。它有可供使用的对象。 池中的对象可以重复使用。对象池有两种形式: 激活对象时,将其从池中拉出。停用时,将对象添加到对象池中。 通过应用 ObjectPoolingAttribute 属性来配置对象池。 这适用于从 System.EnterpriseSer…

    2025年12月17日
    000
  • C# 中的静态类是什么?

    C# 静态类无法实例化,只能有静态成员。 C# 中的静态类是密封的,不能包含实例构造函数。 以下是包含静态类和静态成员的示例 – 示例 using System;public static class Demo { public static float PI = 3.14f; publ…

    2025年12月17日
    000
  • 如何在 C# 中创建 5 元组或五元组?

    Tuple 类表示一个 5 元组,称为五元组。元组是一种具有元素序列的数据结构。 它有五个属性 – Item1 − 获取当前 Tuple 对象的第一个组件的值。 Item2 − 获取值当前 Tuple 对象的第二个组件。 Item3 − 获取当前 Tuple 对象的第三个组件。 Item…

    2025年12月17日
    000
  • SQL Server 数据类型的 C# 等效项是什么?

    下表显示了 SQL Server 数据类型的 C# 等效项 – SQL Server 数据类型 等效的 C# 数据类型 varbinaryByte[]二进制字节[]图像无varchar无char无nvarchar字符串,Char[]nchar字符串,Char[]文本无ntext无行版本字…

    2025年12月17日
    000

发表回复

登录后才能评论
关注微信