Path.GetFileName(inputFile)由于有空格而返回不正确的文件名

本文关键字:空格 返回 不正确 文件名 GetFileName inputFile Path | 更新日期: 2023-09-27 18:05:53

这是c# 4.5方法Path.GetFilenAME(FILE)返回一个文件名直到第一个空格的错误吗?我遇到了这个问题,一开始并没有意识到发生了什么。示例代码和结果如下所示:

//ex: args[0] = "C:'Users'cpharr'Desktop'Testruns'New_Test_2014 test file.pdf"
String inputFile = args[0];                                
String tempFileName = Path.GetFileName(inputFile);
//or ....
String inputFile = Path.GetFileName(args[0]);                                
//inputFile is now equal to "New_Test_2014 as the file name instead of New_Test_2014 test file.pdf."

Path.GetFileName(inputFile)由于有空格而返回不正确的文件名

在命令行上传递包含空格的文件名时,需要用双引号括起来。当你启动你的。exe时,它应该像这样被调用:

myprog.exe "c:'path'with spaces'in the'middle'file.pdf"

如果不这样做,系统命令行解析器将把每个段视为单独的命令行参数。这将导致您的程序接收args数组中的多个参数。这是Windows中的标准行为,任何接受命令行参数的程序都会以这种方式工作(不仅仅是。net程序)。