A complete file system with an API using custom blocks. This project is designed to allow extremely powerful and flexible file management while providing a simple interface that does all of the heavy lifting in the background to provide optimizations and organization. This project provides a sprite which manages a file system complete with the ability to create, delete, copy, read, write, modify, manage, and import/export files with modularity in mind. To use, go into the project (click "See inside") then go to the sprite named "File Manager" You will interact with the system using custom blocks, the list "file_stage", and the variable "file stage name". To learn how to use the API, read the comments attached to each custom block definition. Custom blocks with a name of the form ____*____ are meant for internal use and are not intended to be used by the user or the programmer. Also, do not use any variables directly besides "file stage name" and the list "file_stage".
I made this project so that I might use it to make an operating system (OS). ## Continue reading if you want my plans for the new OS ## The idea is if I have high-level file management, I could make an OS which is able to be organized around files. The OS will have a complete stack-based programming language that allows for very powerful programming with the concepts of packages and modulary. This allows the creation and installation of packages that contain software, applications, functions, libraries, data, and depend on other packages for code reuse. With packages, development can happen inside the OS and outside of it. Packages can be shared and installed by the scratch community, outside of the OS, effectively making the new OS, inside a scratch project, a full development platform. The far-fetched goal/dream is to develop a C compiler that converts C code into code that the OS can run. With this, the community can even make C static and dynamic libraries for popular libraries like SDL and zlib that target the new OS. If this point is reached, I believe that this new toy OS would have real-world utility while providing an interface, and blurring of lines, between "professional" software development and "toy" development in scratch. One limitation right now is the max size of lists in scratch. As of scratch 3.0, lists can hold up to 200,000 items. For some applications, this can be exhausted fast, but can be remedied by compressing data or encoding multiple lines into single line.