Я создал инструмент для рандомизации идентификаторов определений, чтобы избежать этой проблемы с помощью встроенного svg, ссылающегося на тот же #id, надеюсь, он будет полезен для кого-то еще. http://hugozap.com/randomize_svg_def_ids.html
Windows Vista позволяет вам создать каталог, но сохраняет его в другом месте. Только приложение, которое его создало, может видеть по указанному вами пути. Вот почему Exists возвращает истину.
Это было сделано для того, чтобы старые приложения, пытающиеся сохранить файлы в папках, где не было разрешений, не завершились ошибкой. Большинство людей сталкиваются с этим с устаревшими приложениями, которые пытаются сохранить свои файлы в каталоге программных файлов.
Это называется виртуализацией, и вы можете установить манифест, в котором говорится, что он вам не нужен для своего приложения. Также, если вы работаете с повышенными привилегиями, это не применимо (что не в вашем случае).
Это также влияет на реестр.
Вы можете прочитать об этом здесь .
Здесь это ссылка от Microsoft.
Directory.CreateDirectory
не вызовет исключение, если папка уже существует, поэтому поведение, которое вы испытываете, является правильным.