مدیریت فایل‌ها


می خواهیم برنامه ای بنویسیم که با کمک آن بتوانیم فایل های خود را مدیریت کنیم.

نیاز هایی که باید این فایل منیجر برطرف کند عبارتند از:🔗
  • ساخت یک پوشه جدید
  • ساخت یک فایل جدید
  • جستجو کردن بر اساس نام فایل
  • حذف فایل
  • بازیابی فایل

جزئیات🔗

با توجه به نیازمندی‌هایی که در بالا گفته شد، یک کلاس با نام FileManager تعریف کنید که همه متدهای جدول زیر را طبق رفتار توضیح داده شده پیاده‌سازی کند.

رفتار خروجی متد
یک پوشه جدید با نام name در آدرس address می سازد. - create_dir(name, address)
یک فایل جدید با نام name در آدرس address ایجاد می کند . - create_file(name, address)
یک فایل با نام name را از آدرس address حذف می کند . - delete(name, address)
آدرس تمام فایل های با نام name را از آدرس address به بعد برمیگرداند ‌‍‍‍List find(name, address)
فایل با نام name را بازیابی می کند. - restore(name)

نکات🔗

  • در متد create_dir در صورت عدم وجود پوشه باید پوشه ای جدید ساخته شود در غیر این صورت نباید هیچ اتفاقی بیفتد!
  • در متد create_file در صورت عدم وجود فایل باید فایلی جدید ساخته شود در غیر این صورت نباید هیچ اتفاق دیگری بیفتد!
  • در متد delete در صورت عدم وجود فایل نباید هیچ اتفاقی بیفتد
  • در متد find باید یک لیست از تمام آدرس ها برگردانده شود ودر صورت عدم وجود فایلی با این نام یک لیست خالی برگردانده شود ترتیب این ادرس ها اهمیتی ندارد
  • آدرس‌های برگردانده شده از متد find باید از آدرس موجود در آرگومان‌ها به بعد باشد (آدرس شامل خود آرگومان نیز می‌باشد) .دقت شود که ممکن است فایل در سطوح پایین تر از سطح اول نیز موجود باشد.
  • متد restore
    • فایل بازیابی شده باید در آدرس قبلی خود قرار گیرد.
    • اگر چند فایل هم نام بصورت متوالی حذف شوند باید با هربار صدا زدن متد restore فایل‌ها به صورت متوالی و با عکس ترتیب حذف، بازیابی شوند.
    • باید در عمل حذف و بازیابی محتوای فایل حفظ شود.
    • در صورت عدم وجود فایلی برای بازیابی نباید هیچ اتفاقی بیفتد.
  • برای حل این سوال می توانید هر فایل و یا پوشه دیگری که خواستید بسازید.

نمونه🔗

fm = FileManager()
fm.create_dir('test', '.')
fm.create_dir('test1', 'test')
fm.create_dir('test2', 'test/test1/')

fm.create_file('test.txt', 'test')
fm.create_file('test.txt', 'test/test1')
fm.create_file('test.txt', 'test/test1/test2')
Plain text

خروجی:‌ باید پوشه ها و فایل های زیر ایجاد شوند.🔗

test
├── test1
│   ├── test2
│   │   └── test.txt
│   └── test.txt
└── test.txt
Plain text

ادامه دستورات🔗

print(fm.find('test.txt', 'test'))
Plain text

خروجی🔗

['test/test.txt', 'test/test1/test.txt', 'test/test1/test2/test.txt']
Plain text

ادامه دستورات🔗

fm.delete('test.txt', 'test')
fm.delete('test.txt', 'test/test1/')
fm.delete('test.txt', 'test/test1/test2')
fm.restore('test.txt')
fm.restore('test.txt')
Plain text

خروجی🔗

test
├── test1
   ├── test2
   │   └── test.txt
   └── test.txt
Plain text

آنچه باید آپلود کنید:🔗

یک فایل Zip شامل یک فایل به نام source.py که کلاس‌ FileManager در آن قرار دارد آپلود کنید.

ارسال پاسخ برای این سؤال
در حال حاضر شما دسترسی ندارید.