我有一个winforms应用程序。在这个应用程序中,我将文本文件导出到我的本地机器,路径来自数据库,就像" C:\ MyFIles"。
现在我的问题是我导出的文件有" /" (正斜线)
在它的名称之间,如"ABC/DEF/Testing"
。所以,当我
将此文件导出到我的本地计算机上
像"C:\\MyFiles\\ABC/DEF/Testing.text"
这样的错误没有
存在或检查指定的路径是否存在。
我遇到了这个问题。任何帮助都会受到赞赏。谢谢。
答案 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("/", "\\") ;