首页 > 编程语言 >特殊符号引发的bug,C#去除不可作为文件名的特殊符号

特殊符号引发的bug,C#去除不可作为文件名的特殊符号

时间:2023-07-14 12:55:42浏览次数:38  
标签:文件 string 文件名 C# fileName 小编 特殊符号 bug

背景

前段时间小编开发了一个控制台程序,把数据库中的数据取出来按照编码名称分别存储文件,存储文件之前检查是否存在当前文件,如果存在删除。开始小批量的数据还挺顺利的,当批量执行问题就来了,每次执行到一半时,创建的文件不增加反而变少了,经过日志捕捉才发现是字段里包含特殊符号惹的祸。小编是按照字段编码来当文件名称的,但是由于是比较老的数据,编码比较乱包含有特殊符号,造成创建文件失败,而且还删除了其它的文件。怎么会删除其它文件了,原来是搜索带有“?”的文件名称后会查出所有的文件然后删除。怎么解决呢?过滤掉名称中的“不可作为文件名的特殊符号”的字符,问题解决。小编分享一下代码:

代码

主要是通过正则表达式实现

using System;
using System.Text.RegularExpressions;
class Program
{
    static void Main()
    {
        string fileName = "my#关注公众号:DOTNET开发跳槽?name*.txt";
        string cleanedFileName = RemoveFileNameChars(fileName);
        Console.WriteLine(cleanedFileName);
    }
    static string RemoveFileNameChars(string fileName)
    {
        // 正则表达式模式匹配不可作为文件名的特殊符号
        string invalidChars = @"[\\/:*?""<>|]";
        // 使用正则表达式替换特殊符号为空字符串
        string cleanedFileName = Regex.Replace(fileName, invalidChars, "");
        return cleanedFileName;
    }
}

在上述代码中的 `RemoveFileNameChars` 方法使用正则表达式模式 `[\\/

标签:文件,string,文件名,C#,fileName,小编,特殊符号,bug
From: https://www.cnblogs.com/xbhp/p/17553405.html

相关文章

  • AtCoder Beginner Contest 162
    AtCoderBeginnerContest162ABCD全暴力E数学题看不懂,感性理解F线性dp,非常基础我不会,寄E-SumofgcdofTuples(Hard)看了题解发现好多做法都是推一堆式子,我实在看不懂(卷积莫反啥啥的呜呜呜)然后看见这个感觉比较好感性理解:(来自洛谷题解)#include<bits/stdc++.h>#def......
  • CF1220F Gardener Alex 题解--zhengjun
    发现根节点一定是\(1\),所以考虑两边的子树深度,然后发现只需要考虑一段后缀或前缀的深度即可。所以循环位移后,可以从中间往两边构建笛卡尔树,实时维护深度即可。代码#include<bits/stdc++.h>usingnamespacestd;usingll=longlong;constintN=2e5+10;intn,a[N],ans[N];......
  • 与 AI 同行,利用 ChatGLM 构建知识图谱
    大家好,我是东方财富的一名算法工程师,这里分享一些利用大模型赋能知识图谱建设的一些实践。为什么知识图谱需要大模型在金融场景中,天然会有大量结构化的数据需要投入大量的人力去生产和维护,而这样的数据又会大量被应用在下游的标签、推荐、风控等场景。比如基金关联的基金经理,基......
  • ckeditor粘贴word图片且图片文件自动上传源码
    ​ 如何做到ueditor批量上传word图片?1、前端引用代码<!DOCTYPE html PUBLIC "-//W3C//DTDXHTML1.0Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head>......
  • 注册中心的可用性和一致性,分区容错性。CAP理论
    https://juejin.cn/post/6961201114343538724CAP理论什么是CAP?C代表Consistency(一致性)一致性是指所有服务节点在同一时刻的数据是完全一致的A代表Availability(可用性)可用性是指所有的请求都必须得到响应P代表Partitiontolerance(分区容错性)分区容错性是指分布式系统的某......
  • Excel-批量填充数字
    1、一般情况下,都是使用鼠标左右键拖动来实现数据的填充的2、但是填充1200列,下拉拖动就非常麻烦,可以首先定位到A200。在屏幕左侧中央处找到剪切板下方的“A1”字样,鼠标单击A1文字,输入想要跳转的单元格,如A200,输入完成之后,点击回车即可。3、将要填充数据的单元格全部选中,选择的......
  • python之struct详解
    用处按照指定格式将Python数据转换为字符串,该字符串为字节流,如网络传输时,不能传输int,此时先将int转化为字节流,然后再发送;按照指定格式将字节流转换为Python指定的数据类型;处理二进制数据,如果用struct来处理文件的话,需要用’wb’,’rb’以二进制(字节流)写,读的方式来处理......
  • Atcoder Regular Contest 114 F - Permutation Division
    显然分成\(k\)段以后,最大化形成的排列的字典序的策略是将所有段按第一个元素的大小降序排列。由于最终排列的字典序肯定\(\ge\)原排列的字典序,因此我们考虑最大化最终排列与原排列的LCP,这部分就考虑二分答案,记\(dp_i\)表示以\(p_1\)开始\(p_i\)结尾的LDS的长度,那么......
  • 【报错解决】使用代理后从Github中clone仓库报错
    当电脑使用代理后,会造成Github的clone和push等功能无法正常使用报错内容:PSD:\Github>gitclonehttps://github.com/sige5193/bittly.gitCloninginto'bittly'...fatal:unabletoaccess'https://github.com/sige5193/bittly.git/':Failedtoconnecttogithub.com......
  • CF1175F The Number of Subpermutations 对自己的警告--zhengjun
    太久没见过启发式合并了,然后没想出做法。首先笛卡尔树建出来。然后直接枚举跨过\(mid\)的长度为\(a_{mid}\)的区间,RMQ\(O(1)\)验证即可。发现这样的区间个数不超过左右区间大小的较小值,时间复杂度:\(O(n\logn)\)。代码#include<bits/stdc++.h>usingnamespacestd;us......