По ссылке
http://msdn2.microsoft.com/en-us/library/system.directoryservices.searchresult.aspx
написан код. На основании его написал свой (ниже):
Всегда случается исключение catch (Exception exp) на DirectorySearcher.FindOne()
какой бы существующий каталог не указал.
Проверил их код для консоли! Тоже самое!!! Почему он не работает? Net Framework 2.0.50727
VS 2005
private void button1_Click(object sender, EventArgs e)
{
DialogResult result = BrowseMainNodeDialog.ShowDialog();
// OK button was pressed.
if (result == DialogResult.OK)
{
folderName = BrowseMainNodeDialog.SelectedPath;
try
{
textBox_MainNode.Text = folderName;
DirectoryEntry mySearchRoot = new DirectoryEntry(folderName);
DirectorySearcher myDirectorySearcher =
new DirectorySearcher(mySearchRoot);
// Get the first entry of the search.
SearchResult mySearchResult = myDirectorySearcher.FindOne();
if (mySearchResult != null)
{
mySearchResult.GetDirectoryEntry();
ResultPropertyCollection myResultPropColl;
myResultPropColl = mySearchResult.Properties;
for (int i = 0; i < myResultPropColl.Count; i++)
{
}
}
else
{
}
}
catch (Exception exp)
{
MessageBox.Show(folderName);
}
Invalidate();
}
// Cancel button was pressed.
else if (result == DialogResult.Cancel)
{
return;
}
}
Здравствуйте, Аноним, Вы писали:
А>По ссылке http://msdn2.microsoft.com/en-us/library/system.directoryservices.searchresult.aspx
А>написан код. На основании его написал свой (ниже):
А>Всегда случается исключение catch (Exception exp) на DirectorySearcher.FindOne()
А>какой бы существующий каталог не указал.
А>Проверил их код для консоли! Тоже самое!!! Почему он не работает? Net Framework 2.0.50727
А>VS 2005
Тоже самон на FW 1.1.
Тут лучше не пользоваться FindOne, а заменить ее на FindAll() и использовать свойство Count коллекции. Тогда исключение происходить не будет, а если ничего не найдено при поиске то Count=0...
Это не решение проблемы с FindOne(), но хороший способ ее обхода.