رمز التحقق من أذونات الكتابة عن الدلائل في WIN2K / XP
-
10-07-2019 - |
سؤال
وتحيات!
وأنا أحاول أن تحقق الدليل الكتابة الأذونات من ضمن برنامج / ATL ويندوز MFC باستخدام C ++. بلدي أول تخمين هو استخدام وظيفة _access C القياسية، منها مثلا:
if (_access("C:\mydir", 2) == -1)
// Directory is not writable.
ولكن على ما يبدو على ويندوز 2000 و XP، _access لا يمكن تحديد أذونات الدليل. (أي علامة التبويب أمان في مربع الحوار خصائص عند النقر بزر الماوس الأيمن فوق على دليل في مستكشف) وهكذا، ليس هناك وسيلة أنيقة لتحديد أذونات الكتابة دليل في ويندوز 2000 / XP باستخدام أي من المكتبات ويندوز C ++؟ إذا كان الأمر كذلك، كيف؟
والشكر
وايفان
المحلول
ويمكنك استدعاء CreateFile مع وصول GENERIC_WRITE للتحقق من ذلك. http://msdn.microsoft.com/en-us /library/aa363858(VS.85).aspx
وانها ليست C ++ مكتبة لكنها لا تزال تحصي أنيقة كما أنه لا مباشرة ما تريد ...
نصائح أخرى
استخدم ثانية المعهد. يمكنك أن تسأل عن المحامي. Win32 واجهة برمجة التطبيقات الأخبار: أخبار: //194.177.96.26/comp.os.ms-windows.programmer.win32 حيث كثيرا ما ناقشناه (C / C ++ كود)
وهناك العديد من href="http://msdn.microsoft.com/en-us/library/aa375742(VS.85).aspx" rel="nofollow noreferrer"> المهام الأمنية ويندوز ، على الرغم من أن لا يمكنني ان اصفه استخدامها أنيقة للغاية. أوصي GetNamedSecurityInfo كحل العام، ولكن الحل CreateFile لديه البساطة معينة والمباشرة التي يمكنني أيضا أن نقدر. :)