2010-12-02 4 views
1

Я провел последние несколько дней, просматривая сайт, ища ответ на эту проблему. Мне нужно создать папку, а затем сделать ее общей сетевой папкой, я пробовал несколько разных образец фрагменты кода из разных сайтовСоздание общей папки с использованием C#

http://www.sarampalis.org/articles/dotnet/dotnet0002.shtml (эта ссылка мертва)

, но ни один, кажется, чтобы папка для совместного использования

Если кто-то мог бы помочь, было бы гораздо aprriciated

+0

Можете ли вы указать, как этот метод не удалось? Получили ли вы какое-то ограничение на отказ в доступе? Или какое-то другое исключение? Возможно, это провалилось, потому что вы не работали как администратор. – Ran

+0

Ссылка сейчас 404. –

ответ

0

Я выполнил ссылку, указанную в вашем вопросе.

У меня есть Профессиональный Профессиональный + VS.NET 2010 Professional, как моя среда для моего ноутбука.

Я взял код из статьи и быстро запустил devenv и выполнил код. Код выполнен без ошибок. Когда я смотрел на созданный каталог, вы не видите значок общего доступа в папке, но он действительно доступен. Как вы можете проверить, что: открыть окно командной строки типа «чистая доля» и нажмите клавишу ввода вы увидите, что это будет список папок C: \ MyTestShare с именем доли «My Test Share»

еще один способ чтобы узнать, является ли он общим или нет, щелкните правой кнопкой мыши по папке и посмотрите вкладку совместного доступа. Проверьте метку сетевого пути. Он будет ясно показывать общий путь.

Надеюсь, это вам поможет. Lohith

+0

Спасибо Lohith, я повторил этот код в своей домашней сети, и он работал в первый раз, я отслеживал проблему с разрешениями на наших серверах, не позволяя суперпользователям создавать папки на серверах – Scott

0
+0

Я думаю, что Скотт уже упомянул об одном из этих сайтов в оригинальном посте. Я положил другой, но затем, посмотрев на ссылку sarampalis, я удалил его, потому что это в основном то же самое. Очевидно, если Скотт попробовал этот метод, и он не работает, ни один из них не будет работать. – light

+0

Я просто попытался ему помочь, но ты прав! – alfdev

+0

Спасибо за помощь в проблемах, связанных с нашими серверами, а не с кодом – Scott

2

Если вы не можете найти реальный Windows API, который делает это, и вы можете решить для грязного раствора, вы можете сделать это, выполнив команду «чистая доля ».

Например, так:

ProcessStartInfo info = new ProcessStartInfo("net", "share MyNewShare=c:\\folder"); 
info.CreateNoWindow = true; 
Process.Start(info);

Обратите внимание, что в любом случае для того, чтобы создать долю вы должны обладать правами администратора, так что ваш код должен будет запустить повышен, если вы работаете на Win7/Vista с включенным UAC.

+0

Иногда грязные решения - это все, что требуется. – youwhut

Смежные вопросы