Проверьте, используется ли папка в C # - PullRequest
1 голос
/ 16 декабря 2009

Рассмотрим сетевую папку:

\\desiis\c$\Company\B2b\Monitor

На этом компьютере любой процесс, который пытается удалить каталог Monitor, получает сообщение об ошибке, поскольку у пользователя в локальной сети этот каталог открыт (вероятно, с помощью проводника Windows).

Могу ли я определить через C # и .NET framework, есть ли у какого-либо пользователя (и какого пользователя) определенный / открытый каталог / используется?

Ответы [ 2 ]

2 голосов
/ 16 декабря 2009

Я не уверен, что вы можете получить конкретного пользователя в каталоге, но класс DirectoryInfo в C # .NET, вероятно, будет лучшим способом.

http://msdn.microsoft.com/en-us/library/system.io.directoryinfo_members.aspx

Просмотрите API по этой ссылке, и вы заметите, что есть метод, позволяющий получить информацию о КОГДАХ к каталогу в последний раз обращались, но не кем. Также вы можете перехватить любое исключение при попытке удалить каталог, так как он недоступен (исключение будет выдано, как вы, вероятно, хорошо знаете).

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

2 голосов
/ 16 декабря 2009

Нет, я не знаю ни одной возможности.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...