如何从数据库中导出和保存文件获取名称,并包含" /"在它的名字c#

时间:2014-06-27 14:02:56

标签: c# winforms

我有一个winforms应用程序。在这个应用程序中,我将文本文件导出到我的本地机器,路径来自数据库,就像" C:\ MyFIles"。

现在我的问题是我导出的文件有" /" (正斜线) 在它的名称之间,如"ABC/DEF/Testing"。所以,当我 将此文件导出到我的本地计算机上 像"C:\\MyFiles\\ABC/DEF/Testing.text"这样的错误没有 存在或检查指定的路径是否存在。

我遇到了这个问题。任何帮助都会受到赞赏。谢谢。

2 个答案:

答案 0 :(得分:2)

你做不到。文件名可以在其中包含正斜杠。将它们替换为另一个字符,如下划线(_):

fileName = fileName.Replace("/","_");

或者替换所有无效字符:

string invalidChars = new string(Path.GetInvalidFileNameChars());

foreach (char c in invalidChars)
{
    fileName = fileName.Replace(c.ToString(), ""); 
}

来自MSDN

  

使用当前代码页中的任何字符作为名称,包括   扩展字符集中的Unicode字符和字符   (128-255),但以下情况除外:

     
      
  • 以下保留字符:
  •   
     < (less than)
     > (greater than)
     : (colon)
     " (double quote)
     / (forward slash)
     \ (backslash)
     | (vertical bar or pipe)
     ? (question mark)
     * (asterisk)
  
      
  • 整数值为零,有时也称为ASCII NUL字符。
  •   
  • 整数表示形式在1到31范围内的字符,但允许使用这些字符的备用数据流除外。有关文件流的更多信息,请参阅文件流。
  •   
  • 目标文件系统不允许的任何其他字符。
  •   

答案 1 :(得分:1)

/无法使用文件名。尝试将\替换为

String yournivalidPath = "C:\\MyFiles\\ABC/DEF/Testing.text" ;
String validPath = yournivalidPath.Replace("/", "\\") ;