国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > C# > 正文

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

2020-01-24 00:20:33
字體:
來源:轉載
供稿:網友

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

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

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

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

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

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

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

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

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

可以使用微軟給的函數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'); // '

主站蜘蛛池模板:
鸡泽县|
阳泉市|
上林县|
乌什县|
双流县|
社会|
灵台县|
枞阳县|
镇巴县|
平安县|
城口县|
花垣县|
巩义市|
虹口区|
久治县|
靖宇县|
炎陵县|
龙川县|
中阳县|
香河县|
钦州市|
武平县|
朔州市|
瓮安县|
望谟县|
嵊州市|
云梦县|
德保县|
云安县|
通辽市|
和硕县|
远安县|
康定县|
盘山县|
都兰县|
大新县|
西平县|
樟树市|
虎林市|
香港|
清丰县|