سؤال

وأنا لا يمكن أن يبدو لتغيير العلم قراءة فقط على الملف. لقد حاول هذا على ويندوز فيستا وإكس بي مع نفس النتيجة، لذلك لا أعتقد انها مسألة 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. لا يمكنك أن تفعل ذلك. كل ما يمكن (ويجب) القيام به هو لإعلام المستخدم الذي هو / هي لا يوجد لديه حقوق الوصول لحفظ الملف هناك، وتقدم لحفظ مكان آخر.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top