为什么我的控制台应用程序不能使用25个或更多参数?

时间:2009-05-27 15:16:52

标签: c# command-line-arguments

我正在创建一个控制台应用程序,我将文件从资源管理器中拖放到.exe上,它将根据我在程序逻辑中设置的规则将它们移动到相应的文件夹。

该程序运行良好,但当我选择超过25个文件并将其放在我的.exe上时,我收到错误:

  

Windows无法访问指定的设备,路径或文件。您可能没有相应的权限来访问该项目。

如果我只从同一组中删除24个文件,它可以正常工作。

我做错了什么?

3 个答案:

答案 0 :(得分:11)

根据您的平台,您可能会遇到最大命令行长度。有关详细信息,请参阅Here

“在运行Microsoft Windows XP或更高版本的计算机上,您可以在命令提示符下使用的字符串的最大长度为8191个字符。在运行Microsoft Windows 2000或Windows NT 4.0的计算机上,您的字符串的最大长度可以在命令提示符下使用2047个字符。“

答案 1 :(得分:2)

是否会超出导致命令行最大长度(以及参数)的文件数,从而导致此错误?

答案 2 :(得分:1)

要回答后续内容,可能需要更多关于应用目的的信息,但如果可能,您可以更改命令行参数以接受文件夹路径和模式以匹配您想要的所有必要文件路线。或者将其更改为具有可以拖放的网格的GUI应用程序。