- Saved searches
- Use saved searches to filter your results more quickly
- filemanager
- Here are 62 public repositories matching this topic.
- TeamAmaze / AmazeFileManager
- 1hakr / AnExplorer
- tonyofrancis / Fetch
- xpipe-io / xpipe
- pgp / XFiles
- satishtamada / FileManager
- longluo / AndroidProjects
- Aghajari / AndroidDirectoryAccess
- platypusguy / FileDedupe
- dherenj84 / filemanager
- zhangxyfs / FileManager
- marcoserafini2 / angular-filemanager-spring-bridge
- Saved searches
- Use saved searches to filter your results more quickly
- SergeyLebidko/JExplorer
- Name already in use
- Sign In Required
- Launching GitHub Desktop
- Launching GitHub Desktop
- Launching Xcode
- Launching Visual Studio Code
- Latest commit
- Git stats
- Files
- README.md
- Saved searches
- Use saved searches to filter your results more quickly
- maxbach/FileManager
- Name already in use
- Sign In Required
- Launching GitHub Desktop
- Launching GitHub Desktop
- Launching Xcode
- Launching Visual Studio Code
- Latest commit
- Git stats
- Files
- readme.md
- About
Saved searches
Use saved searches to filter your results more quickly
You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session.
filemanager
Here are 62 public repositories matching this topic.
TeamAmaze / AmazeFileManager
Material design file manager for Android
1hakr / AnExplorer
📁 Another Android Explorer ( File Manager ) is an All-in-One Open source file manager. AnExplorer File Manager (File Explorer) is designed for all android devices including Phones, Phablets, Tablets, Chromecast, Wear OS, Android TV and Chromebooks. It’s a fully designed with Material guidelines by Google.
tonyofrancis / Fetch
The best file downloader library for Android
xpipe-io / xpipe
A brand-new shell connection hub and remote file manager
pgp / XFiles
A general-purpose file explorer for (rooted) Android, with support for compressed archives, remote file servers, device-to-device file transfers, checksums, etc.
satishtamada / FileManager
Android File Manager Demo
longluo / AndroidProjects
My Android Projects, including different Demos, Widgets, File Manager, Binder, Content Provider, DataBase. —我的安卓App项目,包括自己写的各种Demo, App等,包括安卓控件,数据库,文件管理器,Binder等。
Aghajari / AndroidDirectoryAccess
Android/ directory access for Android >= 11 without root.
platypusguy / FileDedupe
Utility to list duplicate files in one or more directories.
dherenj84 / filemanager
Angular-Spring Boot based File Manager/Browser Supporting Cloud Storage
zhangxyfs / FileManager
marcoserafini2 / angular-filemanager-spring-bridge
A bridge for angular-filemanager using Java and Spring
Saved searches
Use saved searches to filter your results more quickly
You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session.
Простой файловый менеджер на Java
SergeyLebidko/JExplorer
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Name already in use
A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Sign In Required
Please sign in to use Codespaces.
Launching GitHub Desktop
If nothing happens, download GitHub Desktop and try again.
Launching GitHub Desktop
If nothing happens, download GitHub Desktop and try again.
Launching Xcode
If nothing happens, download Xcode and try again.
Launching Visual Studio Code
Your codespace will open once ready.
There was a problem preparing your codespace, please try again.
Latest commit
Git stats
Files
Failed to load latest commit information.
README.md
Простой файловый менеджер на Java
Этот проект — моя вторая попытка сделать файловый менеджер на Java. Первая попытка JManager представляла собой двухпанельный менеджер по образу Total Commander’а. Теперь я захотел реализовать другой внешний вид, больше похожий на проводник Windows или аналогичные приложения под Linux. Плюс хотелось сделать код приложения более структурированным и более понятным, в свете накопленного мной на сегодняшний момент опыта.
Внешний вид приложения (относительно прежней моей работы, см. ссылку выше) стал более аккуратным. Появилась полноценная строка меню. Реализована полноценная панель инструментов. Удалось реализовать адресную строку, каталоги в которой отображаются в виде кнопок; таким образом можно быстро перейти вверх по дереву каталогов на любое количество уровней. Был реализован помимо табличного вида также вид «плитка» с большими и маленькими значками и возможностью быстрого переключения между ними.
Программный код разбит на несколько пакетов, иерархически вложенных друг в друга:
- Пакет jexplorer Класс MainClass. С него начинается выполнение программы. Также в MainClass содержатся в виде статических полей ссылки на все основные, используемые программой объекты. Остальные классы по ходу своего выполнения обращаются к MainClass за ссылками на необходимые для работы объекты. Класс GUI. Пожалуй, самый объемный класс программы. Как понятно уже из названия — создает интерфейс и все объекты интерфейса. Также привязывает к элементам интерфейса обработчики событий.
- Пакет guiclasses. Содержит ряд пакетов и классов, реализующих основные элементы интерфейса: адресную строку (класс AdressPane); панель, отображающую перечень локальных дисков и ссылку на каталог пользователя (класс RootPointExplorerPane); панель, реализующую табличный вид (классы TableExplorerPane, TableExplorerModel, TableExplorerCellRenderer, TableExplorerHeaderRenderer); панель плиточного вида (классы TileExplorerPane и Selector), интерфейс ExplorerPane, которому должны удовлетворять панели. Использование общего для панелей интерфейса позволило значительно облегчить реализацию переключения между плиточным и табличным видами в приложении. Отельно хочу рассказать о классах TileExplorerPane и Selector. Java Swing не содержаит компонентов, которые позволили бы реализовать плиточный вид также легко как табличный и управлять возможностью выделения объектов в таком виде также легко как в таблицах JTable. Поэтому я сам написал соответствующий плиточный вид (но не как наследника класса Component, а как отдельный класс, возвращающий соответсвующим образом настроенный и скомбинированный из других компонентов компонент). Для плиточного вида был также написан (в виде внутреннего класса) специальный менеджер расположения (AdaptiveGridLayout), который перераспределяет плитки в окне зависимости от размеров окна и выбранного режима (большие плитки или маленькие плитки). Класс Selector необходим для реализации выбора элементов с помощью мыши (при этом можно задействовать кнопки Shift и Ctrl также как и в Windows).
- Пакет fileexplorerclasses. В этом пакете содержатся классы, необходимые для перемещения по файловой системе, получения свойств отдельных каталогов и файлов, а также для сортировки по различным признакам (по имени, по размеру и т.д.) выводимого на экран содержимого каталогов. Классы GUI, таким образом, получают уже готовые, предварительно отсортированные (классом FileSorter) по выбранному признаку списки файлов и каталогов и занимаются лишь только выводом их на экран. Типы сортировки (по имени, по размеру, по расширению и т.д.) и группировки (по-возрастанию, по-убыванию) описаны в перечислениях SortTypes и SortOrders. Перечисление FileTypes позволяет связывать типы файлов (по крайней мере, самые распространенные) с иконками файлов. Дело в том, что мне не удалось найти способ получения из Java иконок для файлов таких, какими они отображаются в Windows. Существующие способы (по караней мере, известные мне) позволяют получать иконки размером только 16х16 пикселей, что делает их абсолютно непригоднымии для нормальной реализации плиточного вида. Поэтому мне пришлось применить свой набор иконок для самых распространенных типов файлов. И перечисление FileTypes позволяет быстро сопоставлять тип файла и соответсвующую ему иконку.
- Пакет fileutilities. Содержит классы, необходимые для реализации действий с файлами и каталогами: создание каталогов (класс DirectoryCreator), переименование файлов и каталогов (класс Renamer), их удаление (класс Remover), просмотр их свойств (класс PropertyReceiver), копирование и перемещение (класс Copier). Также в данном пакете находятся классы Clipboard и ClipboardContent, реализующие в моем приложении буфер обмена, необходимый для операций копирования и вставки. Класс ResultSet — пожалуй самый спорный в этом пакете. Мне необходим был класс, в котором можно было бы собирать и возвращать в вызывающий код всю информацию об операциях с файлами и папками и некоторых ошибках, возникающих при выполнении данных операций. Возвращать данные об ошибках путем генерирования Exception в данном случае бывает далеко не всегда удобно. Например, программа получила задание на копирование 10 каталогов, но к двум из них она не может получить доступ, а к остальным — может. Простое генерирование Exception в этом случае прервало бы процесс копирования, а использование ResultSet позволяет затем вывести пользователю отчет о проделанной работе и неудачном доступе к файлам. К тому же через ResultSet удобно передавать, к примеру, отчет о свойствах групп объектов, организованный по принципу «имя свойства»*»значение». Да, возможно, подобный «многофункциональный» класс и нарушает некоторые принципы чистого кода (испольльзуется и для передачи логов ошибок и для передачи наборов свойств), но мне пришлось пойти на этот компромисс, чтобы сделать код. более единообразным что-ли..
P.S. Небольшое замечание по поводу ведения мной github-аккаунта. Раньше я считал, что код на гите должен просто быть. Что история коммитов не так уж важна и можно вообще ограничиваться одним коммитом и простейшим описанием своего приложения. Но теперь я понял, что ошибался и по возможности буду впредь стараться выкладывать на гитхаб всю историю коммитов и снабжать свои репозитории вменяемым readme и скриншотами. Также у меня пока не очень получается делать свои коммиты в достаточной мере «атомарными». Так что, еще есть к чему стремиться))
Saved searches
Use saved searches to filter your results more quickly
You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session.
Файловый менеджер, который написан на языке Java с использованием фреймворка JavaFX.
maxbach/FileManager
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Name already in use
A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Sign In Required
Please sign in to use Codespaces.
Launching GitHub Desktop
If nothing happens, download GitHub Desktop and try again.
Launching GitHub Desktop
If nothing happens, download GitHub Desktop and try again.
Launching Xcode
If nothing happens, download Xcode and try again.
Launching Visual Studio Code
Your codespace will open once ready.
There was a problem preparing your codespace, please try again.
Latest commit
Git stats
Files
Failed to load latest commit information.
readme.md
Файловый менеджер, написанный на языке Java с использованием JavaFx для отрисовки графического интерфейса. В качестве корневого элемента использованы классы TreeView, TreeItem и TreeCell. Проект является тестовым заданием на позицию Java Intern в компанию Сплат.
Формулировка тестового задания
Начальный уровень. Реализовать файловый менеджер на языке Java. Отображающий файловую систему в виде дерева.
Приложение должно иметь интуитивно понятный интерфейс и обладать следующими функциями файлового менеджера:
- навигация по дереву файловой системы (DONE)
- создание нового каталога (DONE)
- иконки должны соответствовать состоянию папки (закрыта, раскрыта) (DONE)
- иконки для файлов (DONE)
Дополнительное задание: Реализовать следующую функциональность:
- «ленивую» загрузку папок, искусственно добавить задержку 2 секунды при раскрытии папки задав такой папке иконку загрузки, при этом приложение не должно «замораживаться» (DONE) (Примечение: ленивая загрузка работает только при первом открытии папки, в следующие разы внутренности папки уже загружены, поэтому загружать больше нечего)
- добавление схожих функций с «Проводником Windows» на ваше усмотрение.
На свое усмотрение я добавил следующие функции:
About
Файловый менеджер, который написан на языке Java с использованием фреймворка JavaFX.