对于方法Path.GetFilenAME(FILE)来说,这是c#4.5的一个错误,它返回一个空格的文件名直到第一个空格?我遇到了这个问题,并没有意识到最初发生了什么。示例代码和结果如下所示:
//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."
答案 0 :(得分:3)
在命令行中传递包含空格的文件名时,需要用双引号将它们包装起来。当您启动.exe时,应该像这样调用它:
myprog.exe "c:\path\with spaces\in the\middle\file.pdf"
如果您不这样做,系统命令行解析器会将每个段视为单独的命令行参数。这将导致您的程序在args
数组中接收多个参数。这是Windows中的标准行为,任何采用命令行参数的程序都将以这种方式工作(不仅仅是.NET程序)。