Когда я загружаю файл cui, CAD выдает ошибку, что не может найти файл.
Долго ищу в нете. Но бесполезно. Пожалуйста, помогите мне.
Документ документа = Application.DocumentManager.MdiActiveDocument;
object oldCmdEcho = Application.GetSystemVariable("CMDECHO");
object oldFileDia = Application.GetSystemVariable("FILEDIA");
Application.SetSystemVariable("CMDECHO", 0);
Application.SetSystemVariable("FILEDIA", 0);
doc.SendStringToExecute("_.cuiload " + cuiFile + " ", false, false, false);
doc.SendStringToExecute("(setvar \"FILEDIA\" " + oldFileDia.ToString() + ")(princ) ", false, false, false);
doc.SendStringToExecute("(setvar \"CMDECHO\" " + oldCmdEcho.ToString() + ")(princ) ", false, false, false);
Я пробовал несколько вариантов этого, но ни один из них не работает. Любые идеи? Пожалуйста, прокомментируйте, чтобы помочь мне.
Выполняю весь код, Вроде все в порядке, Но на последнем CAD выскакивает ошибка: CAD не нашел файл cui.
Я отладил, и файл существует, и значение cuiFile правильное.
Есть ли шанс сообщить нам, что это за значение?
значение cuiFile: "C:\\Program Files\\srctrunk\\srcTrunk\\srcTrunk\\Debug32\\TX_Menu.cuix"
И File.exists(cuiFile) верен
Попробуйте заключить cuiFile в кавычки при добавлении.
Извините, я новый программист, я не улавливаю ваш смысл. Пожалуйста, приведите мне пример.
На данный момент строка, которую вы передаете в свой метод, будет _.cuiload C:\\Program Files\\srctrunk\\srcTrunk\\srcTrunk\\Debug32\\TX_Menu.cuix из-за пробела между программой и файлами, это, возможно, интерпретируется как 3 аргумента вместо 2. Я подозреваю, что вам нужен _.cuiload "C:\\Program Files\\srctrunk\\srcTrunk\\srcTrunk\\Debug32\\TX_Menu.cuix" . Поэтому попробуйте что-то вроде doc.SendStringToExecute("_.cuiload \"" + cuiFile + "\" ", false, false, false);, чтобы обернуть имя файла в виде одной строки.
Спасибо за ваш ответ искренне, благодаря вашему ответу, я решил это.





На данный момент, если имя файла cuiFile содержит пробелы, то строка, переданная doc.SendStringToExecute, вероятно, не обрабатывает ваше имя файла как одну строку. Итак, как и в случае с вызовами setvar, заключите имя файла в кавычки:
doc.SendStringToExecute("_.cuiload \"" + cuiFile + "\" ", false, false, false);
Это должно привести к тому, что имя файла будет передано как одна строка, например: _.cuiload "C:\\Program Files\\srctrunk\\srcTrunk\\srcTrunk\\Debug32\\TX_Menu.cuix".
Нигде в этом коде вы не устанавливаете значение
cuiFile. Наиболее вероятная причина того, что файл не найден, заключается в том, что существует проблема с именем файла/путем. Вы отладили и подтвердили правильность значения cuiFile?