一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務(wù)器之家:專注于服務(wù)器技術(shù)及軟件下載分享
分類導(dǎo)航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術(shù)|正則表達(dá)式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務(wù)器之家 - 編程語言 - C# - 詳解C# 不能用于文件名的字符

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

2022-02-20 14:03lindexi C#

在 Windows 有一些字符是不能作為文件名,嘗試重命名一個(gè)文件,輸入/ 就可以看到windows 提示的不能作為文件名的字符,那么具體是包括哪些符號(hào)不能作為文件名呢?下面小編給大家介紹下

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

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

那么具體是包括哪些符號(hào)不能作為文件名?

  • 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)建這樣的文件名

?
1
2
3
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.

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

那么是不是把這些字符串拿出來判斷?實(shí)際上微軟已經(jīng)做了這個(gè)了,因?yàn)樵诓煌南到y(tǒng),可能之后會(huì)添加新的字符串,所以最好不要自己寫。

可以使用微軟給的函數(shù)system.io.path.getinvalidfilenamechars ,下面的代碼可以直接使用

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
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();
 }

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

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
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();
}

總結(jié)

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

原文鏈接:https://lindexi.oschina.io/lindexi/post/C-%E4%B8%8D%E8%83%BD%E7%94%A8%E4%BA%8E%E6%96%87%E4%BB%B6%E5%90%8D%E7%9A%84%E5%AD%97%E7%AC%A6.html

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 久9青青cao精品视频在线 | 亚洲免费色 | 我半夜摸妺妺的奶C了她软件 | 天天做日日爱 | 91久色| 精品久久久久久无码人妻国产馆 | 成人免费在线视频观看 | 精品综合久久久久久8888 | 国产精品久久久精品日日 | 麻豆亚洲一区 | 午夜一级免费视频 | 4455永久在线观免费看片 | 日韩国产成人精品视频 | 国产一区私人高清影院 | 男女车车好快的车车免费网站 | 国产一页 | 北岛玲在线视频 | 亚洲欧美在线观看一区二区 | 我和寂寞孕妇的性事 | 男人午夜免费视频 | 香蕉精品高清在线观看视频 | 亚洲国产货青视觉盛宴 | 日韩欧美一区二区不卡 | www.男人的天堂.com | 成人香蕉xxxxxxx | 九九九九在线精品免费视频 | 色呦呦在线免费观看 | 男人操女人免费视频 | 高清在线免费 | 大伊香蕉在线精品不卡视频 | 久久青青草原精品国产软件 | 亚洲娇小videos | 午夜精品国产 | 成年人网站免费在线观看 | 国产成人亚洲综合网站不卡 | 日本高清va不卡视频在线观看 | 亚洲日本视频在线 | 好男人在线观看hd中字 | 久热这里只有精品99国产6 | 国产精品视频二区不卡 | 亚洲精品卡一卡2卡3卡4卡 |