تغيير مقروءة السمة فقط على ملف
سؤال
وأنا لا يمكن أن يبدو لتغيير العلم قراءة فقط على الملف. لقد حاول هذا على ويندوز فيستا وإكس بي مع نفس النتيجة، لذلك لا أعتقد انها مسألة UAC ذات الصلة.
لا شيء قمت به ويبدو أن العمل على الرغم من. رؤية عينة أدناه. فهل يمكن أن تقولوا لي ما أفعله خطأ؟
public bool UpdateResFile(string fileName, string language, string objectName, string NewValue)
{
FileInfo fi = new FileInfo(fileName);
try
{
//Do Stuff
xDoc.Save(fileToUpdate);
}
catch (UnauthorizedAccessException)
{
//fi.IsReadOnly = false;
File.SetAttributes(fileName, FileAttributes.Normal);
//fi.Attributes -= FileAttributes.ReadOnly;
return UpdateResFile(fileName, language, objectName, NewValue);
}
catch (System.Exception ex)
{
Console.WriteLine(ex.Message);
return false;
}
return true;
}
المحلول
وليس من الممكن تغيير السمة الوحيدة قراءة من ملف في UnauthorizedAccessException تتسبب في تطبيق المنفذة مع الأذونات التي لديك في الكمبيوتر.
إذا لم يكن لديك أذونات لتغيير عادة هذا الملف للقراءة فقط، سيتم التطبيق الخاص بك لا تتغير هذه السمة أيضا.
وأطيب التحيات. Josema.
نصائح أخرى
وأعتقد أن ما كنت تبحث عن الموضح في القسم محتوى المستخدم في الجزء السفلي من هذه المادة MSDN
http://msdn.microsoft.com /en-us/library/system.io.file.setattributes.aspx
وأنت تحاول تغيير العلم للقراءة فقط على ملف عندما تحصل على UnauthorisedAccessException. لا يمكنك أن تفعل ذلك. كل ما يمكن (ويجب) القيام به هو لإعلام المستخدم الذي هو / هي لا يوجد لديه حقوق الوصول لحفظ الملف هناك، وتقدم لحفظ مكان آخر.