2010-03-04 32 views
5

Uygulamam yetkisiz bir erişim hatası oluşturuyor. Uygulamamı çalıştırırken, aşağıdaki konumda bir dizine erişmeyi deniyorum: Application.UserAppDataPath.Soru: Uygulamamı çalıştırırken Windows 7, Yetkisiz Erişim Özel Durumunu Kullanma

Sorun: Ben Application.UserAppDataPath dizini

başvurum kaynak kodu içinde izinlerini ayarlamak için bir yolu var mı erişim iznine sahip değilsiniz diye?

şey gibi:

Bu kod
Application.UserAppDataPath.SetPermissions() 
+2

Lütfen bize kodunuzu gösterin; Muhtemelen bir hata yapıyorsun. – SLaks

+1

Yolu * erişim * izniniz yoksa, bu yol üzerinde * izinleri ayarlamak için * izniniz olmayacaktır, ancak kullanıcı uygulama verilerine her zaman izin vermelisiniz. – Aaronaught

+0

İstisnaı atan kod şu şekildedir: StreamReader sr = new StreamReader (Application.UserAppDataPath)); – RedEye

cevap

12

devam ederse bir UAC sorunu, yükseltilmiş bir süreç olarak başvurunuzu çalıştırmayı deneyin ve bakın diyorsunuz olduğunu :

StreamReader sr = new StreamReader(Application.UserAppDataPath); 

Application.UserAppDataPath bir dizin değil, bir dosyasıdır. Bunu doğrudan açmaya çalışırsanız, gerçekten bir izne sahip olmadığınız AppData klasörünün altındaki bir seviyeyi açmaya çalışmakla aynı şeydir. gerçekte muhtemelen AppData özgü içinde bir alt klasör kullanarak olmalıdır -

Kullanım Path.Combine yani Tabii bu Of

string fileName = Path.Combine(Application.UserAppDataPath, "settings.xml"); 
StreamReader sr = new StreamReader(fileName); 

sadece bir örnektir, içinde dosyaya AppData klasörü için bir yol inşa etmek uygulamanıza

+3

Bu büyük olasılıkla sebebi ve sık sık gördüğüm bir durumdur. Siz ** kesinlikle ** uygulamanıza özgü bir alt dizin oluşturmak ve uygulamanıza özgüdür. –

+0

Aaronaught sen adamsın ve Scott ... sen de dostum – RedEye

2

Onun muhtemelen hata Yorumlarınız baktığımızda

+0

Teşekkürler. Bunu yüksek bir süreç olarak nasıl çalıştırırım? Üzgünüm, bir n00b. – RedEye

+1

@RedEye: Programınızın kısayolunu sağ tıklayıp 'Yönetici olarak çalıştır' seçeneğini belirleyebilirsiniz. –

+0

@sniperX - +1 - ju maing alamadı. –