Skip to main content

DriveInfo.GetDirectories throws UnauthorizedAccessException

Consider the following line of code

DirectoryInfo Dir = DriveInfo.GetDrives()[1].RootDirectory.GetDirectories();
FileInfo[] files = Dir.GetFiles("anyfile.txt",SearchOption.AllDirectories) ;

First line will return RootDirectory of C drive (usually C drive is the second drive, after A or floppy drive). Second line uses GetFiles method that will apply on Root Directory of C. GetFiles takes two arguments, one is string search pattern where second is an enumeration that says either to search in all directories or only in top level directories.

But this code will throw an error if you don't have appropriate right for any folder of C Drive .... for example on Windows XP with multiple users, you should not have rights to see files of other users .... in result the search interrupted and unsuccessful.

To avoid such problem, we can use recursive function... that recursive function can catch UnauthorizedAccessException ... can we not in above Code?? Yes we can, but as it terminate whole search instead of terminating search for victim directory.

static void SearchFile(string file, DirectoryInfo Dir)
{

if(Dir.Exists)
{
FileInfo[] files;
try
{
files = Dir.GetFiles(file,SearchOption.AllDirectories) ;
files = Dir.GetFiles(file,SearchOption.TopDirectoryOnly);
if(files.Length != 0)
{
foreach(FileInfo res in files)
Console.WriteLine("Found:{0}",res.FullName);
}
else
foreach(DirectoryInfo _dir in Dir.GetDirectories())
SearchFile(file,_dir);
}
catch(UnauthorizedAccessException ex)
{
Console.WriteLine(ex.Message);
}
}
[I am sorry, Windows Live Writter does not allow to format it properly]

This recursive function search for file only in top level directories, and then call recursively for each directories found in directory. In case, there is any directory/file you don't heave rights to access... it will skip only that directory and search will continue ....

Post a Comment

Popular posts from this blog

Mirat-ul-Uroos - Fariha Pervez - Lyrics

میرا ایک چھوٹا سا سپنا ہے
جسے پل میں پورا کر دے گا
ان آتی جاتی سانسوں میں
وہ خوشبو کوئی بھر دے گا
مجھے اونچی ہواوُں میں اڑنا ہے
اور امبر کو جا چھونا ہے
سونا ہے یار کے بستر پر
پھر ہر ایک خواہش میں جگنا ہے
جب چاہوں گھوموں بگھیا میں
میں تتلی ہوں مجھے پر دیتا
وہاں کیسے چیں ملے مجھ کو
جہاں قدم قدم پر پہرے ہوں
دم گھٹتا ہوجہاں  رہتے ہوئے
جہاں غم کے سائے گہرے ہوں
جومنزل پر لے جائے گی
وہ مجھ کو ایسی ڈگر دے گا
میں چلتے چلتے تھک بھی گئی
اور منزل ہاتھ نہیں آئی
خود اپنے سپنے تور لیئے
اور سکھ کی رات نہیں آئی
اب آکے ہوا مجھے انداذہ
میرا ساتھ وہ ذندگی بھر دے گا
کیوں حد سے گزری وحشت میں
اسے دھیرے دھیرے کیوں نہ چھوا
کیوں سارے ناتے ٹوٹ گئے
بھری بھول ہوئی احساس ہوا
جب ٹوٹے لمحے جوڑوں گی
مجھے جینے کی وہ خبر دے گا
میرا چھوٹا سا اک سپنا ہے
جسے پل میں پورا کردے گا
ان آتی جاتی سانسوں میں
وہ خوشبو کوئی بھر دے گا

Khuda Karay K Meri Arz -e- Pak Par Utray

خدا کرے کہ میری ارض پاک پر اترے وہ فصل گل ، جسے اندیشہ زوال نہ ہو یہاں جو پھول کھلے، وہ کھلا رہے صدیوں یہاں خزاں کو گزرنے کی بھی مجال نہ ہو
یہاں جو سبزہ اگے، وہ ہمیشہ سبز رہے اور ایسا سبز ، کہ جس کی کوٴی مثال نہ ہو گھنی گھٹاٴیں یہاں ایسی بارشیں برسا ٴیں کہ پتھروں سے بھی روٴید گی محال نہ ہو
خدا کرے کہ نہ خم ہو سر وقار وطن اور اس کے حسن کو تشویش ماہ و سال نہ ہو ہرایک فرد ہو تہذیب و فن کا اوج کمال کوٴی ملول نہ ہو، کوٴی خستہ حال نہ ہو
خدا کرے کہ میرے اک بھی ہم وطن کےلیے حیات جرم نہ ہو، زندگی وبال نہ ہو خدا کرے کہ میری ارض پاک پر اترے وہ فصل گل ، جسے اندیشہ زوال نہ ہو

ضروری تو نہیں

میں بتا دوں تمہیں ہربات ضروری تو نہیں
آخری ہو یہ ملاقات ضروری تو نہیںجیت جانا تمہیں دشوار نہیں لگتا تھا
آج بھی ہوگی مجھے مات ضروری تو نہیںآدمی فہم و ذکاء سے ہے مزین لیکن
بند ہو جائے خرافات ضروری تو نہیںدل کی راہوں پہ کڑا پہرا ہے خوش فہمی کا
مجھ سے کھیلیں میرے جذبات ضروری تو نہیںامتحاں گاہ سے تو جاتے ہیں سبھی خوش ہوکر
ٹھیک ہوں سب کے جوابات ضروری تو نہیںممتحن میں تو تیرے نام سے لرزاں تھی مگر
تیرے تیکھے ہوں سوالات ضروری تو نہیںمجھ کو انسان کی قدریں بھی بہت بھاتی ہیں
بیش قیمت ہوں جمادات ضروری تو نہیںیوں تو زر اور زمیں بھی ہیں مگر عورت ہو
باعث وجہ فسادات ضروری تو نہیںہر نئے سال کی آمد پر یہ کیوں سوچتی ہوں
اب بدل جائیں گے حالات ضروری تو نہیں[پروین شاکر]