如何在命令行参数中处理路径中的空白
本文关键字:处理 路径 空白 参数 命令行 | 更新日期: 2023-09-27 18:27:08
我的控制台应用程序中存在空格问题。我的应用程序因不允许的字符而崩溃。
我的应用程序需要一个参数,该参数是文件系统的路径。所以它会像这个一样被称为
myProg.exe "D:'tmp'with whitespace'"
有了这些信息,我想在给定的文件夹中创建一个文件,但由于不允许使用char,这是不可能的。
String pdfName = "foobar.pdf
String datapath = args[0];
String targetJobFile = datapath + pdfName + ".txt";
我可以在调试器中看到targetJobFile的值是
"D:'tmp'with whitespace'"foobar.pdf.txt
在那里我收到了例外。感谢
您需要从参数中删除引号,因此在使用它之前,请使用Trim
:
String realArg = args[0].Trim('"');
你已经有了Path.Combine
会给你的'
;但是,如果您不希望用户必须输入它,那么使用Path.Combine
是将路径分隔符字符输入字符串的好方法。
为什么不检查"
字符的存在,并在像一样生成完整路径之前替换它们
datapath = datapath.Replace("'"","");
String targetJobFile = datapath + pdfName;
您可以继续使用Path.GetInvalidPathChars(),它将返回路径名称中不允许的所有无效字符,并将其从路径中删除,如下所示-
modifiedPathName=new Regex(string.Format("〔{0}〕",Regex.Eescape(new string(Path.GetInvalidPathChars()))).Replace(PathName,replaceChar);