أعجوبة

البرمجيات الحُرة والمفتوحة المصدر

أدوات المستخدم

أدوات الموقع


Action disabled: media
thawab-pri:tree

دراسة توزيع الملفات

الاستخدامات المرجوة

  • كتطبيق تقليدي مجلد واحد قابل للكتابة من قبل المستخدم
    • في لينكس يكود داخل البيت
    • في ويندوز يكون داخل MyDocuments
  • السماح للمستخدم بإضافة أي عدد من مجلدات للقراءة فقط إلى جانب ما يلي
    • في لينكس /usr/share/thawab/db و /usr/local/thawab/db
    • في ويندوز X:/thawab/db حيث X هي C فما فوق
  • عند استخدام قرص DVD أو CD فإن مجلد db المجاور للملف التنفيذي هو مجلد للقراءة فقط يحتوي على الكتب
  • عند استخدام ذاكرة فلاش فإن المجلد السابق يكون قابل للكتابة أيضا ويكون أفضل من استخدام MyDocuments
  os.access('/usr/share/thawab/', os.W_OK)

حصر المجلدات

  • مجلد للتخزين المؤقت (يمكن أن نترك تحديده للنظام)
  • قائمة لمجلدات للقراءة فقط تحتوي كتب (الكتب الخاصة بالنظام أو الكتب التي تكون على قرص مدمج)
  • مجلد خاص بالمستخدم يسمح له الكتابة فيه يحتوي الكتب التي يثبتها ويزيلها أو يحررها ..إلخ
  • مجلد خاص بالمستخدم يسمح له الكتابة فيه يحتوي الميتا
  • مجلد خاص بالمستخدم يسمح له الكتابة فيه يحتوي فهارس البحث
  • فهارس للقراءة فقط

كود من أجل ويندوز

الكود التالي يستخرج مكان ال application data و my documents

import winshell
winshell.application_data()
 winshell.my_documents()

الكود التالي يستخرج مكان ال mydocuments

from win32com.shell import shell
df = shell.SHGetDesktopFolder()
pidl = df.ParseDisplayName(0, None,  
    "::{450d8fba-ad25-11d0-98a8-0800361b1103}")[1]
mydocs = shell.SHGetPathFromIDList(pidl)

كلاهما يحتاجان python win32 extension والتي حجمها حوالي 6 ميغا

وهناك طريقة لا تحتاج اعتماديات وهي دالة get_appdata من winpaths

أما لمعرفة الأقراص يمكننا عمل

drives=filter(lambda j: os.path.exists(j), [chr(i)+':\\' for i in range(67,91)])

للمزيد

لينكس وويندوز

في نظام لينكس يعتبر المجلد ~/.thawab

وفي نظام ويندوز يتم استخدام local appdata

وهو في الحالتين مجلد خاص بالمستخدم لحفظ بيانات البرامج وإعداداتها

قرص مدمج يحتوي المكتبة والفهارس

في هذه الحالة يكون لدينا مكتبة للقراءة فقط توفر تصفح وبحث سريع دون أن تشغل أي شيء على القرص الصلب.

يجوز أن يحتوي القرص فهرسا لكن المشكلة في ملفات mcache حيث لو وضع ملفات كتب على سي فإن حصرها وتتبعها يجب أن يكون في مكان قابل للكتابة

دراسة طرق التنفيذ

إذن اختصار الطريقة:

  1. أولا: يتم فحص المجلد الذي يحتوي الملف التنفيذي:
  2. ثانيا: يتم إضافة كل المجلدات التالية:
    • في لينكس /usr/local/thawab/db ثم /usr/share/thawab/db
    • في ويندوز X:/thawab/db حيث X هي C فما فوق
  3. ثالثا: يتم اختبار قابلية كل ما سبق للكتابة واحتواؤه على ملف اسمه .THAWAB.PREFIX بالترتيب

فإن كان قابلا للكتابة ووجد ملف اسمه .THAWAB.PREFIX يتم تقديمه على أنه السابقة المطلوبة (مثلا افتراض أننا في فلاش) وإلا نستخدم .thawab داخل البيت أو ثواب داخل MyDocuments كسابقة قابلة للكتابة (دون أن تحتويا .THAWAB.PREFIX ودون فحص قابلية الكتابة)

thawab-pri/tree.txt · آخر تعديل: 2015/04/23 03:21 بواسطة 127.0.0.1

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki