Каталог. CreateDirectory () должен сделать это. http://msdn.microsoft.com/en-us/library/system.io.directory.createdirectory (По сравнению с 71) .aspx
кроме того, в Vista, Вы, вероятно, не можете записать в C: непосредственно, если Вы не выполняете его как администратор, таким образом, Вы могли бы просто хотеть обойти это, и создать dir Вы хотите в подdir C: (который я сказал бы, хорошая практика, которая будет сопровождаться так или иначе. - его невероятное, сколько людей просто выводит дерьмо на C:
Hope, которая помогает.
Почему бы не использовать ссылочную прозрачность полностью?
Рассмотрим определение get_user_from_db
. Как он знает, как разговаривать с базой данных? Очевидно, это предполагает некоторый (глобальный) контекст базы данных. Вы можете изменить эту функцию так, чтобы она возвращала функцию, которая принимает контекст базы данных в качестве аргумента. У вас есть ...
get_user_from_db :: userid -> User
Это ложь. Вы не можете перейти от идентификатора пользователя к пользователю. Вам нужно что-то еще: база данных.
get_user_from_db :: userid -> Database -> User
Теперь просто карри это с помощью идентификатора пользователя, а при наличии базы данных через некоторое время функция предоставит вам пользователя. Конечно, в реальном мире База данных
будет дескриптором или объектом соединения с базой данных или чем-то еще. Для тестирования дайте ему фиктивную базу данных.
Вы уже упомянули модульное тестирование, продолжайте думать в этом контексте. Все, что вы считаете ценным при тестировании, должно быть достаточно прозрачным, чтобы вы могли его протестировать.
Если у вас нет сложной логики, которая могла бы пойти не так, и один-единственный функциональный / интеграционный тест показал, что она верна, тогда зачем увеличивать расстояние?
Подумайте YAGNI . Но там, где возможность модульного тестирования является реальной необходимостью.