код
Код:Structure LoadData Datas$ DatasID.l EndStructure Structure NameLoadData Name$ NameID.l EndStructure Global NewList NamesD.NameLoadData() ,NewList ListD.LoadData(), t=0 ; ; ;LoadImage(4,"strukt.ico") ; ; Procedure x(Directory$) If Right(Directory$,1)<>"\":Directory$ + "\":EndIf z=ExamineDirectory(#PB_Any, Directory$, "*.*") If LCase(Left(Directory$, 3)) <> "c:\" Or Directory$<>"" If z While NextDirectoryEntry(z) EntryName.s=DirectoryEntryName(z) DisableGadget(3, 1) SetWindowTitle(0, "Пожалуйста, подождите! Идёт сортировка файлов и папок.") AddElement(ListD()) ListD()\Datas$ = EntryName.s Wend EndIf FinishDirectory(z) ; ForEach ListD() ; Debug ListD()\Datas$ ; Next Debug "-----------------------------------------------------------" ForEach ListD() ;Debug ListD()\Datas$ SetWindowTitle(0, "Пожалуйста, подождите! Идёт сортировка файлов и папок.") puti$ = (Mid(ListD()\Datas$, FindString(ListD()\Datas$, ".", 1))) Debug puti$ Select puti$ Case ".html",".htm",".HTML",".HTM" ;------ HTML ------ ;Debug puti$ CreateDirectory(Directory$+"_WEB") n$ = RemoveString(ListD()\Datas$, puti$) If CopyFile(Directory$ + ListD()\Datas$ , Directory$+"_WEB\" + ListD()\Datas$) Debug "Файл успешно скопирован" Else Debug "Возникли проблемы при копировании файла" EndIf ; AddElement(NamesD()) NamesD()\Name$= n$ ;Debug ListD()\Datas$ DeleteFile(Directory$+ ListD()\Datas$) DeleteElement(ListD()) Case ".rar",".RAR",".zip",".ZIP";------ АРХИВ ------ CreateDirectory(Directory$+"_АРХИВ") If CopyFile(Directory$ + ListD()\Datas$ , Directory$+"_АРХИВ\" + ListD()\Datas$) Debug "Файл успешно скопирован" Else Debug "Возникли проблемы при копировании файла" EndIf DeleteFile(Directory$+ ListD()\Datas$) DeleteElement(ListD()) Case ".pb",".pbi",".pbp",".pbv";------ ПУРИК ------ CreateDirectory(Directory$+"_PURE_BASIC") If CopyFile(Directory$ + ListD()\Datas$ , Directory$+"_PURE_BASIC\" + ListD()\Datas$) Debug "Файл успешно скопирован" Else Debug "Возникли проблемы при копировании файла" EndIf DeleteFile(Directory$+ ListD()\Datas$) DeleteElement(ListD()) Case ".bmp",".dib",".gif",".jpg",".jpeg",".jpe",".jfif",".tif",".tiff",".tga",".png",".psd";------ ИЗОВРАЖЕНИЯ ------ CreateDirectory(Directory$+"_IMAGES") If CopyFile(Directory$ + ListD()\Datas$ , Directory$+"_IMAGES\" + ListD()\Datas$) Debug "Файл успешно скопирован" Else Debug "Возникли проблемы при копировании файла" EndIf DeleteFile(Directory$+ ListD()\Datas$) DeleteElement(ListD()) Default ForEach NamesD() If ListD()\Datas$= NamesD()\Name$+"_files" Or ListD()\Datas$= NamesD()\Name$ Debug ListD()\Datas$ DeleteElement(ListD()) EndIf Next EndSelect Next Debug "---------------------------------------------------------" ForEach NamesD() ; Debug NamesD()\Name$ SetWindowTitle(0, "Пожалуйста, подождите! Идёт сортировка файлов и папок.") papki$= NamesD()\Name$+"_files" ;Debug papki$ If NamesD()\Name$ If CopyDirectory( Directory$+ NamesD()\Name$ , Directory$+"_WEB\"+ NamesD()\Name$,"" , #PB_FileSystem_Recursive ) Debug "Папка успешно скопирована" Else Debug "1. Возникли проблемы при копировании папки" EndIf DeleteDirectory(Directory$+ NamesD()\Name$ ,"", #PB_FileSystem_Recursive) EndIf If papki$ If CopyDirectory( Directory$+ papki$ , Directory$+"_WEB\"+ papki$,"" , #PB_FileSystem_Recursive ) Debug "Папка успешно скопирована" Else Debug "2. Возникли проблемы при копировании папки" EndIf DeleteDirectory(Directory$+ papki$ ,"", #PB_FileSystem_Recursive) EndIf DeleteElement(NamesD()) Next t= 2 DisableGadget(3, 0) EndIf EndProcedure If OpenWindow(0, 0, 0, 300, 340, "", #PB_Window_SystemMenu | #PB_Window_ScreenCentered) SetWindowColor(0, RGB(180,180,180)) ;SendMessage_(WindowID(0),#WM_SETICON,#False,ImageID(4)) TextGadget(1,10,305,170,20,"",#PB_Text_Border) ExplorerTreeGadget(2, 10, 10, 280, 280,"") ButtonGadget(3,190,300,100, 30, "Структурировать") Repeat event=WaitWindowEvent() String$ = GetGadgetText(2) If Event = #PB_Event_Gadget If EventGadget() =3 And String$<>"" Debug EventGadget() x(String$) EndIf EndIf SetGadgetText(1, String$+" "+EntryName.s +" ") If t=0 SetWindowTitle(0, "Структуратор папок и файлов.") ElseIf t=1 SetWindowTitle(0, "Пожалуйста, подождите! Идёт сортировка файлов и папок.") ElseIf t=2 SetWindowTitle(0, "Cортировка файлов и папок закончена!") EndIf Until event=#WM_CLOSE EndIf