Хорошо, я знаю, что это было неактивно некоторое время, но я подумал, что, возможно, было простое решение. Статья, которую вы связали в комментариях к вопросу, похоже, указывает на то, что единственная проблема - это каталоги , а не , которые создаются. Решение было сделать это:
if (!f.mkdirs()) {
f.mkdirs();
}
Однако это кажется неэффективным и может иметь проблемы. Итак, почему бы просто не сделать это:
while (!f.mkdirs()) {}
Просто, но работает.
РЕДАКТИРОВАТЬ: Подумав немного, этот пример может отстать от забвения и может привести к блокировке потока. Так что это может быть лучшей идеей:
while (!f.mkdirs()) { Thread.yield(); }
Конечно, это будет рекомендовано только в том случае, если вы находитесь в потоке, который может вызвать блокировку потока, и при условии, что это не высокоприоритетная ситуация. Просто поместил это там.