101
Файл менеджери - бу операцион тизим файлларини ташкил қилиш ва уларни
қайта ишлашга мўлжалланган. Машина тилига яқин бўлган алгоритмик тилларда
(Ассемблер, C++ ) яратилган дастур бўлиб, у стандарт Еxplorer-дан айрим
функционал имкониятлари билан фарқ қилади. Python
дастурлаш тилининг кенг
имкониятлари ҳамда унинг ишлаш тезлигини C++ тили тезлигига жуда якин
бўлганлигини ҳисобга олиб Windows учун файл менеджерини айнан унинг
модуллари ёрдамида яратишни лозим кўрдик [1].
Python алгоритмик тилида яратилган Windows учун файл менеджери дастур коди
керакли бўлган қуйидаги модулларни юклашдан бошланади (дастур коди
фрагменти):
from tkinter import *
from tkinter import messagebox as mb
import shutil
import os
Бу ердаги Python нинг tkinter модули фойдаланувчи интерфейсини яратишга
ёрдам беради.
Кўпинча ОС модули билан биргаликда ишлатиладиган Python нинг Shutil модули
файллар, файллар гуруҳлари ва папкаларни қайта ишлаш учун юқори
даражадаги
функциялар тўпламини ўз ичига олади. Хусусан, бу ерда мавжуд функсиялар файл ва
папкаларни нусхалаш, кўчириш ва ўчириш имконини беради. У Python дастурлаш
тилини ўрнатиш жараёни билан бирга келадиган ўрнатилган модулдир. Модул
таркибини унинг қуйидаги 10 та асосий усуллари (функциялари): shutil.copy,
shutil.copy2, shutil.copyfile, shutil.copytree, shutil.rmtree, shutil.which, shutil.disk_usage,
shutil.move, shutil.make_archive, shutil.get_archive_formats ташкил қилади [2,3].
Дастурий восита хар бир жараён учун махсус функцияларни, жумладан, def
update_path_field(path_field, path) - Майдонни фаол ойна учун йўл қатори
билан
янгилаш, def update_list_box(list_box) - ListBox-даги файл ва папкалар рўйхатини
янгилаш,
d
ef update_panels() - Иккала панелни бир вақтнинг ўзида янгилаш, def
update_path_field(path_field, path) - Майдонни фаол ойна учун йўл қатори билан
янгилаш, def left_panel_clicked(event) - Чап панелда сичқончанинг чап тугмачасини
босиш билан ишлаш, def right_panel_clicked(event) - Ўнг панелда сичқончанинг чап
тугмачасини босиш, def left_panel_doubleclicked(event) - Чап
панелда икки марта
босишни бошқариш, def right_panel_doubleclicked(event) - Ўнг панелда икки марта
босиш билан ишлаш, def go_button_clicked(event) - Олдинга тугмасини босишни
бошқариш, - def back_button_clicked(event) - Орқага тугмасини босишни бошқариш,
def copytree(src, dst, symlinks=False, ignore=None) - Белгиланган каталогни такрорий
нусха кўчириш, def copy_button_clicked(event) - Нусха кўчириш тугмасини босишни
бошқаради, def delete_button_clicked(event) - Ўчириш тугмасини босиш билан
ишлайди, def move_button_clicked(event) - Кўчириш тугмачасини босишни
бошқаради, def rename_button_clicked(event) - Номини ўзгартириш тугмасини босиш
билан ишлайди, def mkdir_button_clicked(event)
- MkDir тугмачасини босишни
бошқаради, def exit_button_clicked(event) - Chiqish тугмасини босишни бошқариш
ташкиллаштиришдан ва уларга интерфейс элементлари оркали мурожаат қилиш
принципига асосан яратилди.
Ишлаб чиқилган дастурий восита интерфейси қуйидагича кўриниш олган: