C#中文件名或文件路径非法字符判断方法

当我们在使用C#编程的时候,经常会遇到需要判断文件名或文件路径是否包含非法字符的情况。本文将介绍C#中文件名或文件路径非法字符的判断方法。

判断非法字符的常规方法

C#中提供了一种常规的方法来判断文件名或文件路径是否包含非法字符:

var illegalChars = System.IO.Path.GetInvalidFileNameChars();
bool isInValidChars = false;
foreach (char c in illegalChars)
{
    if (fileName.Contains(c.ToString()))
    {
        isInValidChars = true;
        break;
    }
}
if (isInValidChars)
{
    // do something when the filename contains illegal characters
}
else
{
    // do something when the filename does not contain illegal characters
}

上述代码中,我们首先通过System.IO.Path.GetInvalidFileNameChars()方法获取了系统中被认为是非法的文件名字符,并将其存储在一个数组中。然后我们遍历该数组,检查文件名是否包含任一个此数组中的字符。如果包含,我们设isInValidChars状态为true。最后,如果isInValidChars状态为true,则表明文件名包含非法字符,需要进行相应处理,否则则说明文件名合法。

使用正则表达式进行判断

另一种判断文件名或文件路径合法性的方法是使用正则表达式。我们可以通过使用Regex.IsMatch()方法,然后传递对应的正则表达式来匹配文件名或文件路径是否合法。以下是通过正则表达式判断文件名或文件路径是否合法的示例代码:

string fileName = "file*name.txt";
string pattern = @"([\<\>\:\\\\\/\?\*\|\""]|\.)";
if (Regex.IsMatch(fileName, pattern))
{
    // 文件名中包含非法字符
}
else
{
    // 文件名合法
}

上述代码使用了一个正则表达式([\<\>\:\\\\\/\?\*\|\""]|\.)。该正则表达式可以匹配所有被认为是非法的字符,包括尖括号、冒号、反斜杠、问号、星号、竖杠、双引号等等。

总结

通过上述两个示例,我们了解了两种判断文件名或文件路径是否合法的方法。判断文件名或文件路径是否包含非法字符,我们可以使用常规方法或是正则表达式。选择其中一种方法即可,根据实际需要来定。无论用哪种方法,都应该保证能够正确判断非法字符,以确保文件的正常使用。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:C#中文件名或文件路径非法字符判断方法 - Python技术站

(0)
上一篇 2023年6月1日
下一篇 2023年6月1日

相关文章

  • C#在运行时动态创建类型的实现方法

    C# 在运行时动态创建类型的实现方法可以使用反射和 Emit 两种方式。以下是每种方式的详细说明: 反射方式 在 C# 中,可以使用 AssemblyBuilder、ModuleBuilder、TypeBuilder 等类来动态创建类型。具体步骤如下: 创建一个 AssemblyBuilder 对象,用于表示将要动态创建的程序集。可以使用 AppDomain…

    C# 2023年5月31日
    00
  • C#实现写系统日志的方法

    首先,我们需要了解什么是系统日志。 系统日志(Syslog) 是一种由大多数操作系统和一些网络设备所产生和使用的标准化的日志记录方式,通常用于记录系统事件以及系统性能数据等,以便于系统管理员进行故障诊断和维护工作。 在 C# 中,我们可以通过 System.Diagnostics 命名空间下的 EventLog 类来记录系统日志。 以下是实现 C# 写系统日…

    C# 2023年5月15日
    00
  • C#连接mariadb(MYSQL分支)代码示例分享

    下面我将为您详细讲解“C#连接mariadb(MYSQL分支)代码示例分享”的完整攻略。 一、准备工作 在连接 mariadb 前需要先安装 mariadb 的 C# 驱动,如下所示: PM> Install-Package MySql.Data 二、连接 mariadb 数据库 通过以下代码示例,我们可以使用 C# 连接 mariadb 数据库: s…

    C# 2023年6月2日
    00
  • 使用 HttpReports 监控 .NET Core 应用程序的方法

    在本攻略中,我们将详细讲解如何使用HttpReports监控.NET Core应用程序,并提供两个示例说明。 什么是HttpReports? HttpReports是一个基于.NET Core的开源应用程序性能监控工具,可以监控应用程序的性能指标、请求响应时间、错误率等。HttpReports提供了一个Web界面,可以方便地查看应用程序的性能数据。 使用Ht…

    C# 2023年5月16日
    00
  • c#基于NVelocity实现代码生成

    下面是基于NVelocity实现C#代码生成的完整攻略。 什么是NVelocity? NVelocity是一款轻量级的Java模板引擎,可以通过模板文件和数据生成文本。不仅如此,NVelocity还拥有.NET版本的实现:NVelocity.dotnet。在本文中,我们将使用NVelocity.dotnet在C#中实现代码生成。 NVelocity.dotn…

    C# 2023年5月31日
    00
  • 使用C#连接SQL Server的详细图文教程

    我很乐意为您提供“使用C#连接SQL Server的详细图文教程”攻略。 简介 在使用C#开发应用程序时,经常需要与数据库进行交互,而SQL Server是一个广泛使用的关系数据库管理系统。这里将为您提供使用C#连接SQL Server的详细图文教程,以帮助您完成这项任务。 步骤 步骤1:安装SQL Server和SQL Server Management …

    C# 2023年6月3日
    00
  • C# DataTable分页处理实例代码

    下面是“C# DataTable分页处理实例代码”的完整攻略: 什么是DataTable分页处理? DataTable是.NET Framework中的一个非常重要的数据对象,它可以用来存储和操作数据。很多时候,我们需要在规模较大的数据集中只提取部分数据进行显示,这时就需要进行分页处理。 如何进行DataTable分页处理? 在C#中,可以通过以下步骤来进行…

    C# 2023年5月31日
    00
  • c# .net在WEB页中的COOKIES设置技巧

    以下是“c# .net在WEB页中的COOKIES设置技巧”的攻略: 1. 什么是Cookies? Cookie(cookie,小甜饼)是一种用于存储会话信息的小型数据文件,与某个特定的Web站点相关联。Cookie在服务器和Web浏览器之间传递,并可用于存储个人信息,如用户名、密码等等。这可以大大提高用户体验,因为它允许用户在未来使用数据而无需重新登录。 …

    C# 2023年5月31日
    00
合作推广
合作推广
分享本页
返回顶部