Как создать папку с помощью Aiogram
Уже почти неделю мучаюсь над тем как можно реализовать создание папки или файла через aiogram
Код:
@dp.message_handler(commands=["CreateFile"])
async def CreateFile(CreateFile):
await CreateFile.answer("<b> типы\n\n\n/File Создает файл\n\n\n/Folder Создает папку</b>", parse_mode="HTML")
@dp.message_handler(commands=["Folder"])
async def Folder(folder):
await folder.answer("<b>Введите путь где будет создана папка</b>", parse_mode="HTML")
@dp.message_handler()
async def path(path):
await path.answer("<b>Введите имя папки</b>", parse_mode="HTML")
@dp.message_handler()
async def name(name):
os.system("md " + name.text)
Но оно почему-то зацикливается

Ответы (1 шт):
Автор решения: oleksandrigo
→ Ссылка
У меня работает.
from aiogram.dispatcher import FSMContext
from aiogram.dispatcher.filters.state import StatesGroup, State
from aiogram.contrib.fsm_storage.memory import MemoryStorage
import config # игнорируй
bot = Bot(token=config.BOT_TOKEN) # делай как у себя
storage = MemoryStorage()
dp = Dispatcher(bot, storage=storage)
class FSMFolderCreate(StatesGroup):
input_path = State()
input_name = State()
@dp.message_handler(commands=["CreateFile"])
async def CreateFile(message: types.Message):
await message.answer("<b> типы\n\n\n/File Создает файл\n\n\n/Folder Создает папку</b>", parse_mode="HTML")
@dp.message_handler(commands=["folder"])
async def cm_folder(message: types.Message):
await message.answer("<b>Введите путь где будет создана папка</b>", parse_mode="HTML")
await FSMFolderCreate.input_path.set()
@dp.message_handler(state=FSMFolderCreate.input_path)
async def get_path_to_folder(message: types.Message, state: FSMContext):
await message.answer("<b>Введите имя папки</b>", parse_mode="HTML")
async with state.proxy() as data:
data['path'] = message.text
await FSMFolderCreate.input_name.set()
@dp.message_handler(state=FSMFolderCreate.input_name)
async def get_name_folder(message: types.Message, state: FSMContext):
async with state.proxy() as data:
path_to_folder = data['path']
name_folder = message.text
os.makedirs(os.path.join(path_to_folder, name_folder))
await state.finish()