Служба подключения сетевого диска Windows - PullRequest
0 голосов
/ 11 июня 2018

Я использую c # для создания службы Windows, которая находит новые zip-файлы на сетевом диске и распаковывает их в локальный каталог.Я использую Map Network Drive API , чтобы выполнить сопоставление.Сначала я вызываю функцию карты, и если это не удается, я отключаю диск и пытаюсь переназначить диск снова.Ошибки:

  • mapDrive () «имя локального устройства уже используется», затем попробуйте
  • unmapDrive () «Это сетевое соединение не существует»

private bool unmapDrive()
{
    try
    {
        NetworkDrive oNetDrive = new aejw.Network.NetworkDrive();
        oNetDrive.LocalDrive = driveLetter;
        oNetDrive.Force = true;
        oNetDrive.ShareName = @"\\IPADDRESS\LogFiles";
        oNetDrive.UnMapDrive();
        return true;
    }
    catch(Exception e)
    {
        Log(e.Message);
        return false;
    }
}

private bool mapDrive()
{
    try
    {
        NetworkDrive oNetDrive = new aejw.Network.NetworkDrive();
        oNetDrive.LocalDrive = driveLetter;
        //oNetDrive.SaveCredentials = true;
        oNetDrive.ShareName = @"\\IPADDRESS\LogFiles";
        oNetDrive.PromptForCredentials = true;
        oNetDrive.MapDrive();
        return true;
    }
    catch(Exception e)
    {
        Log(e.Message);
        return false;
    }
}

они называются так

if (!mapDrive())
{
    unmapDrive();
    if (!mapDrive())
    {
        //if drive cannot be mapped, program will not work
        Log("Discoverer has failed to map drive, shutting down");
        this.Stop();

    }
}
...