我正在使用 System.Process 启动一个外部程序,但我刚刚收到“文件名或扩展名太长”异常。但是,我相信文件名很好,但参数是一个长字符串(33,000 个符号)。该字符串会导致异常吗?
问问题
5271 次
1 回答
5
是的。该文本是对应于 的错误消息ERROR_FILENAME_EXCED_RANGE
,其他用户报告它适用于整个命令长度,而不仅仅是可执行文件名。也可以看看
您肯定超出了限制,尽管我同意错误消息可能会更好。CreateProcess
文档说:
lpCommandLine [in, out, optional]
要执行的命令行。此字符串的最大长度为 32,768 个字符,包括 Unicode 终止空字符。如果
lpApplicationName
为 NULL,则模块名称部分lpCommandLine
仅限于MAX_PATH
字符。
因为ShellExecute
限制甚至更低。Hans 链接了 Raymond Chen 的一个很棒的博客系列,讨论了这些限制和解决方法,请参阅问题评论。
于 2013-10-10T21:10:32.217 回答