ملف مفقود من مجلد برنامج Vista ProgramData
-
23-08-2019 - |
سؤال
لدي برنامج Legacy VB6 الذي يقوم بتثبيت ملف Access في الدليل الفرعي لمجلد البيانات الشائعة (CSIDL_COMMON_APPDATA). لقد قمت الآن بتثبيت هذا البرنامج على نظام Vista 64 بت، والبرنامج يعمل بشكل جيد ويوفر للملف في C: ProgramData Wow Wowcat.mdb، ولكن هذا الملف لا يظهر في مستكشف Windows.
أريد الكتابة فوق قاعدة البيانات هذه، مع إصدار أحدث، مأخوذة من جهاز الكمبيوتر القديم الخاص بي، ولكن استخدام Explorer لا أستطيع رؤية الملف في C: ProgramData Wow (أظهر جميع الملفات المخفية والنظام). إذا ذهبت إلى الأمام ونسخ Wowcat.mdb الجديد على أي حال، فإن البرنامج لا يزال يعمل مع القديم.
يخطو الرمز في VB، إنه يفتح الملف بالتأكيد على: C: ProgramData Wow Wowcat.mdb. يبحث محرك الأقراص C: فقط النسخة الجديدة، فأين هو الشخص الذي يصل إليه البرنامج؟
المحلول
هذا بسبب إعادة توجيه المجلد في نظام التشغيل Windows Vista. إذا لم تكن لديك عادة الحقوق في كتابة شيء ما في مجلد C: Program، فسيتم إعادة توجيه Vista بصمت أولئك الذين يكتبون إلى مجلد "سر" داخل دليل المستخدم الخاص بك. لا يزال الملف مرئيا للمستخدم الذي قام بإنشاء الملف (وأي برامج تعمل مثل هذا المستخدم)، لكنها لن تكون مرئية لأي شخص آخر. لذلك من المحتمل أن يعمل البرنامج كمستخدم مختلف عن Explorer، وبالتالي لا يستطيع Explorer رؤيته.
راجع الإخراج التالي من DIR / AL على جهاز Vista 64 بت الخاص بي:
C:\ProgramData>dir /aL
Volume in drive C has no label.
Volume Serial Number is 74DB-58F8
Directory of C:\ProgramData
02.11.2006 16:41 <JUNCTION> Application Data [C:\ProgramData]
02.11.2006 16:41 <JUNCTION> Desktop [C:\Users\Public\Desktop]
02.11.2006 16:41 <JUNCTION> Documents [C:\Users\Public\Documents]
02.11.2006 16:41 <JUNCTION> Favorites [C:\Users\Public\Favorites]
02.11.2006 16:41 <JUNCTION> Start Menu [C:\ProgramData\Microsoft\Windows\Start Menu]
02.11.2006 16:41 <JUNCTION> Templates [C:\ProgramData\Microsoft\Windows\Templates]
0 File(s) 0 bytes
6 Dir(s) 62 040 051 712 bytes free
تعرف الميزة باسم نقاط إعادة التوزيع أو المقاطعات، اعتمادا على المكان الذي تقرأ عنه. أنها تشبه إلى حد بعيد الروابط الرمزية في يونيكس.
نصائح أخرى
يتطلب القيام بذلك بشكل صحيح Windows Installer MSI أو المثبت Legacy يعمل مرتفعا يقوم بإنشاء مجلد فرعي تحت CommonAppdatafolder، يعطي التحكم الكامل للجميع (أو مجموعة مناسبة) إلى هذا المجلد، وأخيرا يضع MDB الخاص بك هناك. يمكنك أيضا إنشاء المجلد، ونقل ملف MDB هناك، وتعيين أذونات على الملف فقط.
من الممكن أيضا أن يقوم EXE نفسه بالقيام بذلك على المدى الأول إذا تم تشغيله مرتفعا أو يكشف عن الإغفال ويكتشف عملية مرتفعة للقيام بهذه المهمة. تم إملاء المعايير أن هذا الإجراء يجب أن يبدأ عبر عنصر قائمة أو زر مع أيقونة UAC Shield المعروضة ومع ذلك، وليس فقط عرض موجه UAC.
من الأسهل بكثير عبر حزمة MSI رغم ذلك.