5

我正在使用 System.Process 启动一个外部程序,但我刚刚收到“文件名或扩展名太长”异常。但是,我相信文件名很好,但参数是一个长字符串(33,000 个符号)。该字符串会导致异常吗?

4

1 回答 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 回答