首页 > 编程语言 >C#代码片段分享-将非法字符替换为下划线_符号

C#代码片段分享-将非法字符替换为下划线_符号

时间:2023-08-08 13:11:39浏览次数:37  
标签:字符 片段 下划线 title C# 非法 invalid string

 

此代码片段用来将非法的字符清洁化处理,从而确保给文件或者文件夹命名符合规范。

/// <summary>
        /// 将非法字符替换为下划线_符号
        /// </summary>
        /// <param name="title"></param>
        /// <returns></returns>
        private static string ReplaceInvalidChar(string title)
        {
            //含有非法字符
            string invalid = new string(Path.GetInvalidFileNameChars()) + new string(Path.GetInvalidPathChars());
            invalid += "\\";
            invalid += "/";
            invalid += ":";
            invalid += "*";
            invalid += "?";
            invalid += "\"";
            invalid += "<";
            invalid += ">";
            invalid += "|";
            invalid += " ";
            //invalid += "@";
            invalid += "#";
            invalid += "$";
            invalid += "%";
            invalid += "&";

            invalid += "?";
            invalid += "¥";
            invalid += "!";

            if (title.IndexOfAny(invalid.ToCharArray()) >= 0)
            {

                //替换为下划线_,只要发现路径或文件名中出现下划线,就有可能是含有非法字符造成的。算是一个标识。
                foreach (char c in invalid)
                {
                    title = title.Replace(c.ToString(), "_");
                }

            }

            return title;
        }

  

标签:字符,片段,下划线,title,C#,非法,invalid,string
From: https://www.cnblogs.com/binghe021/p/17613903.html

相关文章

  • Android Service生命周期及用法!(转)
    AndroidService生命周期及用法!大家好,上一节我讲解了AndroidActivity的生命周期,这一节我将讲解一下Service,首先我们要知道Service具体是干什么的,什么时候用到?以及它的生命周期等。Service概念及用途:Android中的服务,它与Activity不同,它是不能与用户交互的,不能自己启动的,运行在......
  • eclipse插件开发
    1.Eclipse简介和插件开发Eclipse是一个很让人着迷的开发环境,它提供的核心框架和可扩展的插件机制给广大的程序员提供了无限的想象和创造空间。目前网上流传相当丰富且全面的开发工具方面的插件,但是Eclipse已经超越了开发环境的概念,可以想象Eclipse将成为未来的集成的桌面环......
  • 正确使用classnames库的方式摸索【玩转React】
    前言我们日常开发使用的是React框架,主要采用JSX写法,而classnames与JSX十分般配,组合使用效果极佳,可以实现class的动态绑定。接下来,通过对classnames源码的阅读,来进一步了解classnames出现的契机及其用法。听说你叫className讲classnames之前,科普一点关于它「兄弟」className......
  • @Transactional(rollbackFor = Exception.class) 详解 推荐的事务注解方式 @Transact
    @Transactional(rollbackFor=Exception.class)详解原文链接:https://blog.csdn.net/weixin_43987718/article/details/12342262117、@Transactional(rollbackFor=Exception.class)详解1、参考来源:https://www.cnblogs.com/clwydjgs/p/9317849.html1)、异常是分为运行......
  • ciscn_2019_es_2
    ciscn_2019_es_20x0132位开NX,有system函数,但是需要传入binsh。然而,栈上变量s位于ebp-0x28,而read函数仅能读入0x30个字节,那么若想实施缓冲区溢出,只有0x08=0x30-0x28个字节供我们进行布局。因此,在只有ebp与ret能被篡改的条件下可尝试使用栈迁移。程序存在leaveret......
  • WPF c# 使用Emit自动创建通知类
    参考概念参考自https://www.codewrecks.com/post/old/2008/08/implement-inotifypropertychanged-with-dynamic-code-generation/和DevExpress的MVVM框架Runtime-generatedPOCOViewModels代码实现来自ChatGPT抽卡原始类publicclassClass1{publicvirtualint......
  • DEVICENET转ETHERCAT网关连接汇川ethercat通讯协议
    你有没有遇到过生产管理系统中,设备之间的通讯问题?两个不同协议的设备进行通讯,是不是很麻烦?今天,我们为大家介绍一款神奇的产品,能够将不同协议的设备进行连接,让现场的数据交换不再困扰!捷米JM-ECT-DNT是一款DEVICENET从站功能的通讯网关,可以将DEVICENET转ETHERCAT网络连接起来。它......
  • 使用ceph的对象存储
    Ceph对象存储Ceph对象存储使用Ceph对象网关守护进程(radosgw),它是个与Ceph存储集群交互的FastCGI模块。因为它提供了与OpenStackSwift和AmazonS3兼容的接口,RADOS要有它自己的用户管理。Ceph对象网关可与CephFS客户端或Ceph块设备客户端共用一个存储集群。S......
  • 使用ceph的块存储rbd
    CEPH块设备块是一个字节序列(例如,一个512字节的数据块)。基于块的存储接口是最常见的存储数据方法,它们基于旋转介质,像硬盘、CD、软盘、甚至传统的9磁道磁带。无处不在的块设备接口使虚拟块设备成为与Ceph这样的海量存储系统交互的理想之选。Ceph块设备是精简配置的、大小可......
  • 使用ceph的文件存储CephFS
    CephFS是一个支持POSIX接口的文件系统,它使用Ceph存储集群来存储数据。文件系统对于客户端来说可以方便的挂载到本地使用。CephFS构建在RADOS之上,继承RADOS的容错性和扩展性,支持冗余副本和数据高可靠性。注意:当前,CephFS还缺乏健壮得像‘fsck’这样的检查和修复功能。存储重......