Домой Network Создание общей папки: Справочник по C#

Создание общей папки: Справочник по C#

680
0


      В данной инструкции рассмотрено создание ресурса, к которому может быть предоставлен общий сетевой доступ через локальную компьютерную сеть или посредством корпоративного интернета.
      Выбор директории для создания общей папки осуществляется с помощью класса «FolderBrowserDialog» и метода «ShowDialog». Данный метод запускает общее диалоговое окно с заданной по умолчанию директорией.

Дополнительную информацию по классу «FolderBrowserDialog» вы можете получить из справки Microsoft MSDN.

      Чтобы узнать, как было закрыто диалоговое окно, метод возвращает объект «System.Windows.Forms.DialogResult.OK», если пользователь нажал кнопку «ОК» в диалоговом окне; в противном случае — объект «System.Windows.Forms.DialogResult.Cancel». Далее необходимо сравнить возвращаемое значение и свойство «Form.DialogResult». В случае если пользователь выбрал директорию и нажал кнопку «ОК», необходимо получить с помощью свойства «SelectedPath» компонента «FolderBrowserDialog», путь к выбранной директории и вывести его в элемент управления «TextBox».

FolderBrowserDialog folderBrowserDialog1 =
new FolderBrowserDialog();
if (folderBrowserDialog1.ShowDialog() == DialogResult.OK)
{
textBox1.Text = folderBrowserDialog1.SelectedPath;
}
Данный класс позволяет выполнить следующие методы:

  • Create – Создание общего ресурса;
  • Delete – Удаление общего ресурса и отключение всех соединений использующих данный ресурс;
  • GetAccessMask — Метод возвращает права доступа на указанный общий ресурс;
  • SetShareInfo — Установка параметров общего ресурса.
//Инициализация нового экземпляра класса System.Management.ManagementClass
System.Management.ManagementClass management =
new System.Management.ManagementClass("Win32_Share");

//Получаем экземпляр System.Management.ManagementBaseObject,
//представляющий список входных параметров метода.
System.Management.ManagementBaseObject input =
management.GetMethodParameters("Create");

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

//Описание общего ресурса
input["Description"] = "My Shared Folder";
//Сетевое имя
input["Name"] = "My Shared Folder";
//Местоположение папки
input["Path"] = textBox1.Text;
//Тип общей папки
input["Type"] = 0x0;
Боле подробную информацию вы можете получить из справки Micrsoft MSDN.

      Задав все параметры необходимо вызвать метод «InvokeMethod» для обработки сформированного WMI-объекта.

System.Management.ManagementBaseObject output;
output = management.InvokeMethod("Create", input, null);

      Метод возвращает до десяти различных результатов при создании общего ресурса, но самый главный из них, это ноль. Данное значение свидетельствует об успешном выполнении процесса создания общего ресурса. Ниже представлен полный листинг для реализации поставленной задачи и пример для скачивания.

//Открытие диалога выбора директории для создания
//общей папки
private void button1_Click(object sender, EventArgs e)
{
FolderBrowserDialog folderBrowserDialog1 =
new FolderBrowserDialog();
if (folderBrowserDialog1.ShowDialog() == DialogResult.OK)
{
textBox1.Text = folderBrowserDialog1.SelectedPath;
}
}

//Кнопка создания общей папки
private void button2_Click(object sender, EventArgs e)
{
try
{
//Инициализация нового экземпляра класса
//System.Management.ManagementClass
System.Management.ManagementClass management =
new System.Management.ManagementClass("Win32_Share");

//Получаем экземпляр System.Management.ManagementBaseObject,
//представляющий список входных параметров метода.
System.Management.ManagementBaseObject input =
management.GetMethodParameters("Create");
//Описание общей папки
input["Description"] = "My Shared Folder";
//Сетевое имя папки
input["Name"] = "My Shared Folder";
//Местоположение папки
input["Path"] = textBox1.Text;
//Тип общей папки
input["Type"] = 0x0;

System.Management.ManagementBaseObject output;
output = management.InvokeMethod("Create", input, null);

//Если функция возвращает ноль
//то общая папка успешно создана
if ((uint)(output.Properties["ReturnValue"].Value) != 0)
{
MessageBox.Show("Ошибка создания общей папки!",
"Создание общей папки",
MessageBoxButtons.OK,
MessageBoxIcon.Error);
}
else
{
MessageBox.Show("Создание общей папки успешно выполнено!",
"Создание общей папки",
MessageBoxButtons.OK,
MessageBoxIcon.Information);
}
}
catch (Exception ex)
{
MessageBox.Show("Ошибка создания общей папки "
+ Environment.NewLine +
"Описание ошибки:"
+ Environment.NewLine
+ ex.Message,
"Создание общей папки",
MessageBoxButtons.OK,
MessageBoxIcon.Error);
}
}

Ссылка для скачивания примера: Яндекс.Диск

ЧИТАТЬ ТАКЖЕ:  ”Lc.exe” завершилась с кодом -1: Справочник по C#

Создание общей папки: Справочник по C#

0.00 (0%) 0 votes

ОСТАВЬТЕ ОТВЕТ

Пожалуйста, введите ваш комментарий!
пожалуйста, введите ваше имя здесь