My function is pretty much a standard search function… I’ve included it below.
In the function I have 1 line of code responsible for weeding out Repart NTFS points.
if (attributes.ToString().IndexOf('ReparsePoint') == -1)
The problem is now I am getting an error Access to the path 'c:\System Volume Information' is denied.
I debugged the code and the only attributes at run time for this directory are :
System.IO.FileAttributes.Hidden | System.IO.FileAttributes.System | System.IO.FileAttributes.Directory
I’m executing this code on a windows 2008 server machine, any ideas what I can do to cure this failing?
public void DirSearch(string sDir) { foreach (string d in Directory.GetDirectories(sDir)) { DirectoryInfo dInfo = new DirectoryInfo(d); FileAttributes attributes = dInfo.Attributes; if (attributes.ToString().IndexOf('ReparsePoint') == -1) { foreach (string f in Directory.GetFiles(d, searchString)) { //lstFilesFound.Items.Add(f); ListViewItem lvi; ListViewItem.ListViewSubItem lvsi; lvi = new ListViewItem(); lvi.Text = f; lvi.ImageIndex = 1; lvi.Tag = 'tag'; lvsi = new ListViewItem.ListViewSubItem(); lvsi.Text = 'sub bugger'; lvi.SubItems.Add(lvsi); lvsi = new ListViewItem.ListViewSubItem(); lvsi.Text = d;//'C:\\Users\\Administrator\\Downloads\\MediaMonkey.GOLD.EDITION.v.3.0.2.1134.[Darkside].[Demonoid].[Grim.Reaper]'; lvi.SubItems.Add(lvsi); listView1.Items.Add(lvi); } DirSearch(d); } } }
Nobody has permission to access System Volume Information except the SYSTEM account. So either change the permissions on the directory. Or much, much better catch the exception and go on.