На основе Вашей обновленной проблемы DWMAPI.dll является, вероятно, не Вашей проблемой. Уокер зависимости будет всегда давать Вам, что ошибка каждый раз, когда Вы связываетесь с mshtml как она всегда, проверяет задержку загруженный DLLs.
В этой точке мое лучшее предположение - то, что у Вас есть свой набор проекта для динамичной загрузки библиотек времени выполнения, и путь поиска для DLLs изменяется языком майя. Таким образом, это может быть неспособно найти DLL времени выполнения MSVC. Я не разработал плагины майя в долгое время, но у меня была та проблема с другими приложениями, которые недавно имеют сменный DLLs.
Попытка, изменяющая Ваши настройки в C/C++> Генерация кода-> Библиотека времени выполнения к Многопоточному а не Многопоточному DLL.
, Кроме которого можно попытаться играть с Зависимостью Walker, чтобы заставить его использовать те же пути поиска в качестве языка майя и видеть, можно ли придумать другую проблему зависимости.
Как последнее прибежище можно запустить язык майя в отладчике и установить точку останова на LoadLibrary и узнать, какая библиотека не загружается тот путь.
В пакете java.io нет класса Directory
, но вы можете использовать метод mkdir ()
в файле
вместо этого:
(new File("Foo")).mkdir()
Обратите внимание, что mkdir ()
имеет два отдельных режима отказа:
checkWrite ()
не разрешает именованный каталог, который будет создан », тогда будет сгенерировано SecurityException
. mkdir ()
вернет false. (Более конкретно, он вернет истину , если и только если каталог был создан.) Пункт 1 в порядке - если у вас нет разрешения, бросайте. Пункт 2 несколько неоптимален по трем причинам:
Directory.CreateDirectory ()
, который
ничего не делает, если каталог существует.
В этом есть смысл - "создать
каталог ";" хорошо, каталог
создано ". Имеет ли значение, был ли он
создано сейчас или ранее; этим
процесс или другой? Если ты действительно
заботился об этом, разве вы не спросили бы другое
вопрос: «Этот каталог существует?»
Следующее предостережение заключается в том, что mkdir ()
не будет создавать более одного каталога за раз. Для моего простого примера каталога с именем «Foo» это нормально; однако, если вы хотите создать каталог с именем Bar в каталоге Foo (т.е. создать каталог «Foo / Bar»), вы должны не забыть использовать вместо него метод mkdirs ()
.
Итак, чтобы Чтобы обойти все эти предостережения, вы можете использовать вспомогательный метод, например следующий:
public static File createDirectory(String directoryPath) throws IOException {
File dir = new File(directoryPath);
if (dir.exists()) {
return dir;
}
if (dir.mkdirs()) {
return dir;
}
throw new IOException("Failed to create directory '" + dir.getAbsolutePath() + "' for an unknown reason.");
}
Я видел немного более сжатую форму вашего метода createDirectory
:
File f = new File(xyz);
if (!f.exists() && !f.mkdirs()) throw new IOException("Could not create directory " + f);
Возможно, также стоит проверить, существует ли f
, но не является каталогом.