Почему мое консольное приложение не работает с 25 и более аргументами?

StackOverflow https://stackoverflow.com/questions/916345

  •  06-09-2019
  •  | 
  •  

Вопрос

Я создаю консольное приложение, в котором я помещаю файлы в .exe из проводника, и оно перемещает их в соответствующую папку на основе правил, которые я установил в логике программы.

Программа работает отлично, но когда я выбираю более 25 файлов и перекидываю их на свой .exe, то получаю ошибку:

Windows не может получить доступ к указанному устройству, пути или файлу.Возможно, у вас нет соответствующих разрешений для доступа к элементу.

Если я удаляю только 24 файла из одного набора, все работает нормально.

Что я делаю не так?

Это было полезно?

Решение

В зависимости от вашей платформы вы можете столкнуться с максимальной длиной командной строки.Видеть Здесь для получения дополнительной информации.

«На компьютерах под управлением Microsoft Windows XP или более поздней версии максимальная длина строки, которую вы можете использовать в командной строке, составляет 8191 символ.На компьютерах под управлением Microsoft Windows 2000 или Windows NT 4.0 максимальная длина строки, которую можно использовать в командной строке, составляет 2047 символов».

Другие советы

Является ли количество файлов причиной превышения максимальной длины командной строки (и, следовательно, аргументов), что вызывает эту ошибку?

Чтобы ответить на этот вопрос, может потребоваться немного больше информации о назначении приложения, но, если возможно, вы можете изменить аргументы командной строки, чтобы они принимали путь к папке и шаблон, соответствующий всем необходимым файлам, которые вы хотите перенаправить.Или измените его на приложение с графическим интерфейсом с сеткой, в которую можно перетаскивать.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top