下記コードのファイルアイコンにファイルをドロップした際は、正常にパスワード付きのzipファイルが作成されますが、フォルダをドロップした際はエラーが表示されます。フォルダをドロップしてもファルダ（サブフォルダも含む）がパスワード付きのzip圧縮ができるように変更できますか？

import tkinter as tk
from tkinter import ttk
import sys
import os
import random
import string
import pyperclip
import pyminizip
import glob

root = tk.Tk()
root.withdraw()

# Create the main window
CompDecomp = tk.Toplevel(root)
CompDecomp.title("Dialog")

# Set window dimensions and position it at the center of the screen
window_width = 300
window_height = 130
screen_width = CompDecomp.winfo_screenwidth()
screen_height = CompDecomp.winfo_screenheight()
x = int((screen_width / 2) - (window_width / 2))
y = int((screen_height / 2) - (window_height / 2))
CompDecomp.geometry(f"{window_width}x{window_height}+{x}+{y}")

# Create the Password panel
panel1 = tk.LabelFrame(CompDecomp, text="Password", padx=60, pady=3)
panel1.pack(pady=10, padx=60)

# Create the edit text
edittext1 = tk.Entry(panel1)

def generate_random_password(length):
    characters = string.ascii_letters + string.digits  # 英字と数字を含む文字列
    password = ''.join(random.choice(characters) for _ in range(length))
    return password

# 8文字のランダムなパスワードを生成する
password = generate_random_password(8)

def copy_to_clipboard(password):
    pyperclip.copy(password)

copy_to_clipboard(password)

# Set the text of the edit text
edittext1.insert(0, password)
edittext1.pack()

# Create the button group
group1 = tk.Frame(CompDecomp)
group1.pack()

def get_dropped_paths():
    return sys.argv[1:]

def get_file_paths(directory):
    file_paths = []
    for root, dirs, files in os.walk(directory):
        for file in files:
            file_path = os.path.join(root, file)
            file_paths.append(file_path)
    return file_paths

def compress():
    paths = get_dropped_paths()
    password = pyperclip.paste()  # クリップボードからパスワードを取得
    if not paths:
        return
    zip_filename = os.path.basename(paths[0])  # ドロップされた最初のファイル名を取得
    zip_filename = zip_filename.split(".")[0]  # 拡張子を除去
    zip_filename += ".zip"  # 拡張子.zipを追加

    if os.path.isfile(paths[0]):
        # ファイルがドロップされた場合はそのまま圧縮
        pyminizip.compress_multiple(
            paths,
            [],
            zip_filename,
            password,
            0
        )
    elif os.path.isdir(paths[0]):
        # フォルダがドロップされた場合はフォルダ内のファイルを圧縮
        file_paths = get_file_paths(paths[0])
        pyminizip.compress_multiple(
            file_paths,
            [],
            zip_filename,
            password,
            0
        )

    sys.exit()  # コンソールを閉じる

def cancel():
  The letter u should appear at least 43 times.
user