كيف يمكنني نقل الملف إلى صندوق إعادة التدوير / القمامة على منصات مختلفة باستخدام PYQT4؟

StackOverflow https://stackoverflow.com/questions/3628517

سؤال

أرغب في إضافة الميزة التالية إلى تطبيق PYQT4 عبر المنصات: عندما يحدد المستخدم بعض الملفات وتحديد الإجراء "إزالة" على ذلك ، سيتم نقل هذا الملف إلى مجلد BIN لإعادة التدوير بدلاً من إزالته بصراحة. أعتقد أنه يمكنني العثور على حل خاص بنظام Windows باستخدام Win32 API أو شيء مشابه ، لكنني أود أن أعرف أنه يمكن تنفيذ عملية مماثلة على Ubuntu/Linux و Maxosx وكذلك عبر أساليب PYQT4.

هل كانت مفيدة؟

المحلول

إنه لأمر جيد أن تستخدم Python ، لقد قمت بإنشاء مكتبة للقيام بذلك منذ فترة:

http://www.hardcoded.net/articles/send-files-to-trash-on-allatforms.htm

على PYPI: send2trash

تثبيت

باستخدام كوندا:

conda install Send2Trash

باستخدام PIP:

pip install Send2Trash

الاستخدام

حذف الملف أو المجلدات

from send2trash import send2trash
send2trash("directory")

نصائح أخرى

أعتقد أنه لا يوجد حقًا حل عبر المنصات التي توفرها QT وهي ليست مهمة تافهة تمامًا لتنفيذ مفهوم القمامة في Linux لأنه مختلف قليلاً بناءً على مدير الملفات المستخدم.

إليك موقع يناقش مفهوم القمامة في نوتيلوس وواحد آخر ل kde.

تحت Windows ، يمكنك استخدام API Win32 كما قلت. حل بيثون متاح هنا.

يضع Mac OS X الملفات المحملة في ~/.trash على غرار Ones *nix Oss ، لكنني لم أستطع بسرعة Google أي وثائق لذلك. يبدو أن ملف معلومات OS X Trash هو نوع من التنسيق الثنائي وليس نصًا عاديًا كما في Linux.

ليس لدى Symbian مفهوم سطح المكتب وبالتالي لا يوجد مفهوم القمامة أيضًا. قد يكون مشابهًا لمنصات المحمول الأخرى.

تعديل: سوبر المستخدم لديه بعض النقاشات التي تكشف أن .DS_STORE يقوم بالفعل بتخزين معلومات حول الملفات المحدودة ، ولكن لا توجد تفاصيل حول التنسيق.

ال أفضل حل OSX أعلم أنه يستخدم Applescript. ومع ذلك ، لم أخترعها ، لذلك سأربطه ببساطة هنا.

سيكون من الجيد أن يكون لديك وحدة نمطية قامت بتعبئة حلول Win32/KDE/OSX إلى واحدة ، وأشعر ، واستيرادها الصحيحة عند الطلب. هل هذه هي الطريقة التي حلت بها مشكلتك في النهاية؟

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