Добрый день. Нужен совет, потому что я не понимаю в какую сторону копать для решения проблемы.
Есть сетевая папка, в которой лежат текстовые документы, которые необходимо прочесть. Код вида Directory.Exists([путь к папке]) выдает ошибку существования папки до тех пор, пока я вручную в проводнике не открою указанный путь. Или любую другую папку на сервере. После открытия папки алгоритм работает как часы.
Что именно происходит при ручном открытии папки на уровне системы, что обеспечивает в дальнейшем корректную работы программы? И есть ли предположения, как можно обеспечить это поведение программно?
Код ниже использует найденный здесь(https://stackoverflow.com/questions/295538/how-to-provide-user-name-and-password-when-connecting-to-a-network-share/39540451#39540451) вариант обеспечить принудительную установку логина пользователя. Что с ним, что без него, при обращении по пути выше - папка не существует, пока не будет открыта в проводнике.
List<string> _directories = new List<string> { @"\\[server01]\WorkflowTemplate\", @"\\[server02]\WorkflowTemplate\", @"\\[server03]\WorkflowTemplate\" };
ImpersonationHelper.Impersonate(domain, login, pwd, delegate
{
foreach (string dir in _directories)
{
if (!Directory.Exists(dir))
{
Console.WriteLine("Directory {0} doesn't exists.", dir);
}
else
{
Console.WriteLine("{0} has {1} sudfolder", dir, Directory.GetDirectories(dir).Count());
}
}
});
Вопрос решил вспомогательный класс, который был описан вот здесь: https://stackoverflow.com/a/1197430/7493716
Все еще буду признательна за комментарии, объясняющие природу ошибки. В итоге работающий код выглядит так:
using (new NetworkConnection(dir, new NetworkCredential(login, pwd, domain)))
{
some work with folder...
}
Частный дом престарелых в Киеве: комфорт, забота и профессиональный уход
При нажатии на ячейку открывается новая форма, где должен отобразиться текст label:
Здравствуйте, есть функция которая отправляет в послед порт N байт, и ожидает получение ответа (N байт ответа) заданное время, если данные получены...
Нашел неплохой пример для работы с протоколом Modbus RTU Code Project
Сделал dataset сериализацию XMLНо не могу теперь сделать Десериализации в dataset и вывести в грид