最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

詳解C# 不能用于文件名的字符

 更新時間:2018年02月23日 11:52:32   投稿:mrr  
在 Windows 有一些字符是不能作為文件名,嘗試重命名一個文件,輸入/ 就可以看到windows 提示的不能作為文件名的字符,那么具體是包括哪些符號不能作為文件名呢?下面小編給大家介紹下

在 Windows 有一些字符是不能作為文件名,嘗試重命名一個文件,輸入/ 就可以看到windows 提示的不能作為文件名的字符

那么具體是包括哪些符號不能作為文件名?

  • Tilde (~)
  • Number sign (#)
  • Percent (%)
  • Ampersand (&)
  • Asterisk (*)
  • Braces ({ })
  • Backslash (\)
  • Colon (:)
  • Angle brackets (< >)
  • Question mark (?)
  • Slash (/)
  • Plus sign (+)
  • Pipe (|)
  • Quotation mark (")

上面這些字符不能用來文件名和文件夾名

而且在 windows 的要求,文件是需要有文件名的,雖然你也可以創(chuàng)建.file這樣的文件,但是用戶是難以自己輸入這樣的文件名。

之外還有一些文件名是保留,不能創(chuàng)建這樣的文件名

CON, PRN, AUX, CLOCK$, NUL
COM0, COM1, COM2, COM3, COM4, COM5, COM6, COM7, COM8, COM9
LPT0, LPT1, LPT2, LPT3, LPT4, LPT5, LPT6, LPT7, LPT8, and LPT9.

嘗試新建一個文本,然后把他文件名命名為上面的任意一個,基本windows會說不能把文件命名

那么是不是把這些字符串拿出來判斷?實際上微軟已經(jīng)做了這個了,因為在不同的系統(tǒng),可能之后會添加新的字符串,所以最好不要自己寫。

可以使用微軟給的函數(shù)System.IO.Path.GetInvalidFileNameChars ,下面的代碼可以直接使用

 public static string MakeValidFileName(string text, string replacement = "_")
  {
   StringBuilder str=new StringBuilder();
   var invalidFileNameChars = System.IO.Path.GetInvalidFileNameChars();
   foreach (var c in text)
   {
    if (invalidFileNameChars.Contains(c))
    {
     str.Append(replacement??"");
    }
    else
    {
     str.Append(c);
    }
   }
   return str.ToString();
  }

如果確實需要顯示文件名,請使用下面代碼

public static string GetSafeFilename(string arbitraryString)
{
 var invalidChars = System.IO.Path.GetInvalidFileNameChars();
 var replaceIndex = arbitraryString.IndexOfAny(invalidChars, 0);
 if (replaceIndex == -1) return arbitraryString;
 var r = new StringBuilder();
 var i = 0;
 do
 {
  r.Append(arbitraryString, i, replaceIndex - i);
  switch (arbitraryString[replaceIndex])
  {
   case '"':
    r.Append("''");
    break;
   case '<':
    r.Append('\u02c2'); // '˂' (modifier letter left arrowhead)
    break;
   case '>':
    r.Append('\u02c3'); // '˃' (modifier letter right arrowhead)
    break;
   case '|':
    r.Append('\u2223'); // '∣' (divides)
    break;
   case ':':
    r.Append('-');
    break;
   case '*':
    r.Append('\u2217'); // '∗' (asterisk operator)
    break;
   case '\\':
   case '/':
    r.Append('\u2044'); // '⁄' (fraction slash)
    break;
   case '\0':
   case '\f':
   case '?':
    break;
   case '\t':
   case '\n':
   case '\r':
   case '\v':
    r.Append(' ');
    break;
   default:
    r.Append('_');
    break;
  }
  i = replaceIndex + 1;
  replaceIndex = arbitraryString.IndexOfAny(invalidChars, i);
 } while (replaceIndex != -1);
 r.Append(arbitraryString, i, arbitraryString.Length - i);
 return r.ToString();
}

總結

以上所述是小編給大家介紹的C# 不能用于文件名的字符,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!

相關文章

  • C# 判斷字符為空的6種方法的效率實測對比

    C# 判斷字符為空的6種方法的效率實測對比

    本文主要介紹了C#中判斷字符是否為空的方法,并實測對比各種方法的執(zhí)行效率,最后推薦大家使用IsNullOrEmpty,效率和易用性比較均衡。
    2016-05-05
  • C# task應用實例詳解

    C# task應用實例詳解

    這篇文章主要介紹了如何在C#中一些應用task的實例,簡單易懂的代碼能更好的幫你學習,有興趣的朋友可以了解下
    2020-05-05
  • C#實現(xiàn)NPOI的Excel導出詳解

    C#實現(xiàn)NPOI的Excel導出詳解

    這篇文章主要介紹了C#實現(xiàn)NPOI的Excel導出的示例代碼,文中的實現(xiàn)過程講解詳細,對我們的學習或工作有一定的幫助,感興趣的可以跟隨小編一起學習一下
    2022-01-01
  • c++指針使用形參改變實參的方法

    c++指針使用形參改變實參的方法

    下面小編就為大家?guī)硪黄猚++指針使用形參改變實參的方法。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-03-03
  • C#中把字符串String轉換為整型Int的小例子

    C#中把字符串String轉換為整型Int的小例子

    這篇文章主要介紹了C#中把字符串String轉換為整型Int的小例子,本文使用TryParse方法實現(xiàn)轉換,需要的朋友可以參考下
    2014-08-08
  • C#對Excel表csv文件的讀寫操作詳解

    C#對Excel表csv文件的讀寫操作詳解

    在C#編程中,CSV(Comma Separated Values)文件是一種常見的數(shù)據(jù)存儲格式,用于存儲表格數(shù)據(jù),如數(shù)據(jù)庫導出或報表,CSV文件以其簡單、易于處理和跨平臺兼容性而受到廣泛使用,本篇文章將深入探討如何在C#中進行CSV文件的讀寫操作,需要的朋友可以參考下
    2024-12-12
  • C#調用百度地圖API根據(jù)地名獲取經(jīng)緯度geocoding

    C#調用百度地圖API根據(jù)地名獲取經(jīng)緯度geocoding

    本文主要介紹了C#調用百度地圖API根據(jù)地名獲取經(jīng)緯度geocoding,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-04-04
  • 基于C#實現(xiàn)屏幕桌面截圖

    基于C#實現(xiàn)屏幕桌面截圖

    這篇文章主要為大家詳細介紹了如何利用C#實現(xiàn)屏幕桌面截圖以及左上角區(qū)域截圖功能,文中的示例代碼講解詳細,對我們學習C#有一定的幫助,感興趣的小伙伴可以了解一下
    2022-12-12
  • 如何利用C#打印九九乘法表

    如何利用C#打印九九乘法表

    這篇文章主要給大家介紹了關于如何利用C#打印九九乘法表的相關資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-12-12
  • C#從文件或標準輸入設備讀取指定行的方法

    C#從文件或標準輸入設備讀取指定行的方法

    這篇文章主要介紹了C#從文件或標準輸入設備讀取指定行的方法,涉及C#文件及IO操作的相關技巧,具有一定參考借鑒價值,需要的朋友可以參考下
    2015-04-04

最新評論

达孜县| 石泉县| 光山县| 长寿区| 墨竹工卡县| 兴城市| 东台市| 尉氏县| 社旗县| 贵德县| 丹棱县| 金秀| 珠海市| 台东县| 南雄市| 林芝县| 满洲里市| 保定市| 寿阳县| 耒阳市| 富顺县| 高要市| 涟源市| 金川县| 东山县| 恩平市| 桐城市| 故城县| 和静县| 天等县| 岱山县| 布尔津县| 玉田县| 和林格尔县| 凤台县| 甘孜| 沈阳市| 凉城县| 金华市| 闵行区| 山东省|