国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

特殊符號(hào)引發(fā)的bug,C#去除不可作為文件名的特殊符號(hào)

這篇具有很好參考價(jià)值的文章主要介紹了特殊符號(hào)引發(fā)的bug,C#去除不可作為文件名的特殊符號(hào)。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

背景

前段時(shí)間小編開(kāi)發(fā)了一個(gè)控制臺(tái)程序,把數(shù)據(jù)庫(kù)中的數(shù)據(jù)取出來(lái)按照編碼名稱分別存儲(chǔ)文件,存儲(chǔ)文件之前檢查是否存在當(dāng)前文件,如果存在刪除。開(kāi)始小批量的數(shù)據(jù)還挺順利的,當(dāng)批量執(zhí)行問(wèn)題就來(lái)了,每次執(zhí)行到一半時(shí),創(chuàng)建的文件不增加反而變少了,經(jīng)過(guò)日志捕捉才發(fā)現(xiàn)是字段里包含特殊符號(hào)惹的禍。小編是按照字段編碼來(lái)當(dāng)文件名稱的,但是由于是比較老的數(shù)據(jù),編碼比較亂包含有特殊符號(hào),造成創(chuàng)建文件失敗,而且還刪除了其它的文件。怎么會(huì)刪除其它文件了,原來(lái)是搜索帶有“?”的文件名稱后會(huì)查出所有的文件然后刪除。怎么解決呢?過(guò)濾掉名稱中的“不可作為文件名的特殊符號(hào)”的字符,問(wèn)題解決。小編分享一下代碼:

代碼

主要是通過(guò)正則表達(dá)式實(shí)現(xiàn)

using?System;
using?System.Text.RegularExpressions;
class Program
{
    static void Main()
    {
        string fileName = "my#關(guān)注公眾號(hào):DOTNET開(kāi)發(fā)跳槽?name*.txt";
        string cleanedFileName = RemoveFileNameChars(fileName);
        Console.WriteLine(cleanedFileName);
    }
    static string RemoveFileNameChars(string fileName)
    {
        // 正則表達(dá)式模式匹配不可作為文件名的特殊符號(hào)
        string invalidChars = @"[\\/:*?""<>|]";
        // 使用正則表達(dá)式替換特殊符號(hào)為空字符串
        string cleanedFileName = Regex.Replace(fileName, invalidChars, "");
        return cleanedFileName;
    }
}

在上述代碼中的 `RemoveFileNameChars` 方法使用正則表達(dá)式模式 `[\\/???""<>|]` 匹配不可作為文件名的特殊符號(hào),并使用空字符串將它們替換掉。通過(guò)調(diào)用這個(gè)方法,你可以將文件名中的特殊符號(hào)去除掉。比如輸入的文件名是 `公眾號(hào)dotnet#開(kāi)發(fā)?跳槽*.txt"`,輸出的清理后的文件名是 `"公眾號(hào)dotnet開(kāi)發(fā)跳槽.txt"`。

結(jié)語(yǔ)

如果涉及到用代碼生成文件名稱,一定要注意是否有不可作為文件名的特殊符號(hào),否則會(huì)造成未知原因的bug,比如像小編描述“?”的bug,把文件刪除完了。希望本文對(duì)你有所收獲,你有更好的方法嗎?歡迎留言或者吐槽。文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-559006.html

來(lái)源公眾號(hào):DotNet開(kāi)發(fā)跳槽

到了這里,關(guān)于特殊符號(hào)引發(fā)的bug,C#去除不可作為文件名的特殊符號(hào)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • web前端之node批量修改文件名、大小駝峰與符號(hào)之間的相互轉(zhuǎn)換、把小駝峰文件名改為短橫線、readdir、stat、rename

    以上代碼只能在node環(huán)境下運(yùn)行,在瀏覽器環(huán)境中運(yùn)行報(bào)錯(cuò)。 node index.js

    2024年02月01日
    瀏覽(227)
  • bug:file name too long文件名超出系統(tǒng)最大限制

    bug:file name too long文件名超出系統(tǒng)最大限制

    今天開(kāi)發(fā)需求的時(shí)候發(fā)現(xiàn)無(wú)法新建文件,提示file name too lang,于是翻閱和查詢了一些資料,發(fā)現(xiàn)不同操作系統(tǒng)下文件名和目錄名最長(zhǎng)的長(zhǎng)度不同。 操作系統(tǒng) 文件名最大長(zhǎng)度(字節(jié)) 路徑最大長(zhǎng)度 Linux 255 4096 MAC 255 1024 Windows(未開(kāi)啟長(zhǎng)文件名) 255 260 Windows(開(kāi)啟長(zhǎng)文件名) 25

    2024年02月16日
    瀏覽(21)
  • Kotlin系列之?、?:、!!、:: 特殊符號(hào)

    聲明一個(gè)變量可為空。 ????????表示這個(gè)變量可以為null。該變量如果為null時(shí),不會(huì)執(zhí)行該變量后面的邏輯,也不會(huì)拋出空指針異常,俗稱空安全。如果不為null,會(huì)正常執(zhí)行該變量后面的內(nèi)容。 非空斷言運(yùn)算符 ????????加在變量后面,表示該變量如果為null時(shí),會(huì)拋出

    2024年02月16日
    瀏覽(37)
  • Shell語(yǔ)法解釋特殊符號(hào) # %

    在 Bash 中, % 符號(hào)通常表示刪除字符串的后綴。具體來(lái)說(shuō), ${var%pattern} 表示從變量 $var 的結(jié)尾刪除匹配模式 pattern 的子串,并返回刪除后的字符串。 例如,如果 $namebin 的值為 file.bin ,那么 ${namebin%.bin} 的結(jié)果就是 file ,因?yàn)樗鼊h除了 $namebin 變量結(jié)尾的 .bin 后綴。 需要注意

    2024年02月01日
    瀏覽(19)
  • Linux 終端特殊符號(hào)含義大全

    Linux 終端特殊符號(hào)含義大全

    Linux 終端中有許多特殊符號(hào),本文對(duì)常用的進(jìn)行了總結(jié): $ 表示變量/普通終端用戶:用于引用變量的值/表示終端中的普通用戶。 # 表示注釋/超級(jí)用戶:用于在腳本中注釋代碼/表示終端中的超級(jí)用戶。 / :根目錄/目錄分隔符。 ~ :當(dāng)前用戶的主目錄。 . :當(dāng)前目錄。 .. :上

    2024年02月11日
    瀏覽(45)
  • JS 去除字符串中所有標(biāo)點(diǎn)符號(hào)

    JS 去除字符串中所有標(biāo)點(diǎn)符號(hào)

    直接上代碼了

    2024年02月06日
    瀏覽(31)
  • Java split()方法中的特殊符號(hào)

    在Java中,split()方法用于分隔字符串,可以根據(jù)匹配給定的正則表達(dá)式來(lái)拆分字符串。split()方法可以將一個(gè)字符串分割為子字符串,然后將結(jié)果作為字符串?dāng)?shù)組返回;語(yǔ)法如下,其中參數(shù)regex指定正則表達(dá)式分隔符,limit指定分割的份數(shù)。分隔符可以是任意字符、符號(hào)、數(shù)字、

    2024年02月10日
    瀏覽(17)
  • Vue之html中特殊符號(hào)的展示

    在html中使用特殊字符時(shí)直接展示會(huì)報(bào)錯(cuò),需要使用實(shí)體名稱或者實(shí)體編號(hào)才能展示。

    2024年02月10日
    瀏覽(22)
  • Python使用jieba庫(kù)分詞并去除標(biāo)點(diǎn)符號(hào)

    Python使用jieba庫(kù)分詞并去除標(biāo)點(diǎn)符號(hào)

    相對(duì)于英文文本,中文文本挖掘面臨的首要問(wèn)題就是分詞,因?yàn)橹形牡脑~之間沒(méi)有空格。在Python中可以使用jieba庫(kù)來(lái)進(jìn)行中文分詞。 但是在中文中,標(biāo)點(diǎn)符號(hào)出現(xiàn)的頻率也是很高的,在使用jieba庫(kù)對(duì)帶有標(biāo)點(diǎn)符號(hào)的漢語(yǔ)句子進(jìn)行分詞時(shí),標(biāo)點(diǎn)符號(hào)出現(xiàn)在分詞結(jié)果中時(shí),對(duì)于后

    2024年02月04日
    瀏覽(16)
  • SqlServer中去除字段空格及特殊空格/回車(chē)/換行等

    解決方式如下: 1.去除左邊空格? ?LTRIM() 2.去除右邊空格? ?RTRIM() 3.去除回車(chē)符? ? REPLACE(@str, CHAR(13) , \\\'\\\')? 4.去除換行符? ? ?REPLACE(@str, CHAR(10), \\\'\\\')? 5.去除回車(chē)換行符? ? REPLACE(@str, CHAR(13) + CHAR(10), \\\'\\\') 6.替換空格? ?REPLACE(@str,\\\' \\\',\\\'\\\') 實(shí)例如下:

    2024年02月16日
    瀏覽(16)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包