Win32Exception: имя каталога недопустимо

Давайте рассмотрим его.

a имеет тип int [4] (массив из 4 int). Его размер 4 * sizeof(int).

&a имеет тип int (*)[4] (указатель на массив из 4 int).

(&a + 1) также имеет тип int (*)[4]. Он указывает на массив из 4 int, который начинает 1 * sizeof(a) байт (или 4 * sizeof(int) байт) после начала a.

*(&a + 1) имеет тип int [4] (массив 4 int). Его память начинает 1 * sizeof(a) байт (или 4 * sizeof(int) байт после начала a.

*(&a + 1) - 1 имеет тип int * (указатель на int), потому что массив *(&a + 1) уменьшается до указатель на его первый элемент в этом выражении. Он будет указывать на int, который начинает 1 * sizeof(int) байт до начала *(&a + 1). Это то же значение указателя, что и &a[3].

*(*(&a + 1) - 1) типа int. Поскольку *(&a + 1) - 1 - это то же значение указателя, что и &a[3], *(*(&a + 1) - 1) эквивалентно a[3], который был инициализирован как 3, так что это число, напечатанное printf .

13
задан mrtaikandi 14 June 2009 в 08:36
поделиться

3 ответа

Это потому, что длина пути к файлу превышает 255 символов.

2
ответ дан 1 December 2019 в 21:38
поделиться

Попробуйте заменить

pInfo.WorkingDirectory = New System.IO.FileInfo(myFile).DirectoryName;

на

pInfo.WorkingDirectory = Path.GetDirectoryName(myFile);

FileInfo обеспечивает доступ к файловой системе, и я предполагаю, что только администратор имеет доступ к этому каталогу. Если это не решит вашу проблему, по крайней мере, это немного ускорит ваш код ...

3
ответ дан 1 December 2019 в 21:38
поделиться

Является ли каталог сопоставленной домашней папкой вошедшего в систему пользователя или ниже? Эта статья базы знаний может помочь:

Сообщение об ошибке «Недопустимое имя каталога» при запуске Cmd.exe или Notepad.exe с помощью функции «Запуск от имени» в Windows.

Обновление: Обратите внимание, что будучи членом Группа локальных администраторов и обладание административными привилегиями не совпадают в Vista.

Я полагаю, что все работает нормально, когда вы запускаете приложение C # от имени администратора. Щелкните исполняемый файл правой кнопкой мыши, затем выберите Запуск от имени администратора или запустите приложение из командной строки с повышенными привилегиями (самый быстрый способ получить его - нажать Пуск , ввести «cmd», а затем by Ctrl + Shift + Return ).

Или, в качестве альтернативы,

3
ответ дан 1 December 2019 в 21:38
поделиться
Другие вопросы по тегам:

Похожие вопросы: