PS3 File Manager

PS3 PS3 File Manager 260606-0332

mohasi

Forum Noob
Hi there, I have been working on a clean file manager for a few weeks, its partially functional. What works:

- Navigation
- Copy / Cut / Paste
- Rename
- Delete
- New file / directory
- FTP
- Image Viewer

Ill be adding some more functionality as I go. Some of the planned stuff includes:

- New file / directory
- Zip / Unzip
- Open text / image / binary / audio / video files
- Text editor
- PS3 game mounting
- FTP
- Last updated date column

- Permissions info on a file
- Symlinking

Code:
https://codeberg.org/mohasi/ps3-dev/src/branch/main/apps/file-manager

Releases:
https://codeberg.org/mohasi/ps3-dev/releases

1781052175472.png


Thank you
 
Last edited:
Worth to investigate filesystem sync functionality. Because i.e in multiMAN, if user delete eg disc image, and not wait for sync (which occurring in unknown condition), XMB will be reporting old free size from before deleting, while file is in reality deleted, leaving user in technically damaged UFS2 state without way to fix it. The same apply to all FTP servers. This works fine on 4.21 but became broken on 4.4x and still is. Something strange going on with vsh I believe, and I put bet blindly on sync/async write.
 
Worth to investigate filesystem sync functionality. Because i.e in multiMAN, if user delete eg disc image, and not wait for sync (which occurring in unknown condition), XMB will be reporting old free size from before deleting, while file is in reality deleted, leaving user in technically damaged UFS2 state without way to fix it. The same apply to all FTP servers. This works fine on 4.21 but became broken on 4.4x and still is. Something strange going on with vsh I believe, and I put bet blindly on sync/async write.
Thanks for your comment. I looked into this, and found (maybe incorrect):
  • webMAN mod does not sync, nor does IRISMAN (it has it commented out in client.c), and ManaGunz does it for NTFS/exFAT.
  • You are right, if no flushes occur, there could be discrepancy between deleted/copied files and actual disk state, which on power failure could cause issues. Although I am unsure of what exactly would happen, don't want to try.
  • There are two levels available, a per file sync using cellFsFsync(fd), and a full device sync using sys_fs_sync lv2 syscall.
I could add both, but copying and syncing after every file for thousands of files may be too heavy performance wise so I will not add that, but I will add a device sync after a batch, even if it partially fails, covering copy/move/delete. A batch can be 1 file, or a thousand. So it will still run after single files. Just not in the middle of deleting a directory with a thousand.

I will also make a similar change in my "simple-ftp-plugin", but at a lower granularity, i.e. every command. AFAIK FTP works in lock-step, so the client sends a command for every single file to delete/copy etc, so since we already have that networking delay, adding a fast sync should not cause a noticeable perf drop.

I will make the change in the next release.
 
Last edited:
Thanks mohasi! I always love coming back after a break and seeing what the devs have come up with for the scene. I'm in the process of dl'ing and will install to play around with.

Best Regards,
Desmo
 
Per file would be a death wish but after completing all file operations it is reasonable. Eventually, put that on menu/hot button fort sync on demand , however, this will be not intuitive for people.

BTW: which gfx library are you using? Tiny3D?
 
Per file would be a death wish but after completing all file operations it is reasonable. Eventually, put that on menu/hot button fort sync on demand , however, this will be not intuitive for people.

BTW: which gfx library are you using? Tiny3D?

In the file manager app, its per action, so a paste is an action, if its 1000 files it will sync after 1000, and if its a single file, it will since after just one. Same for delete. For the ftp-plugin, its per call, as the client deletes/pastes one file at a time, its per file, since the overhead there is negligible due to network. In my testing it made no difference to performance. I had 400+ small icon files, which took 20s to transfer before and the same after the change.

As for the graphics lib, I am not using any, its direct gcm drawing.

I published a new release with:

In app FTP server
I made the ftp server code from the "simple-ftp-plugin" re-useable, and now the file manager has the same functionality. Just press SELECT to start and stop the server, the IP address will display next to the button. If you already use the "simple-ftp-plugin", or a different plugin already running on port 21, then it will detect that and disable the button, but still show you the IP address, indicating its already running.

Image Viewer
Now you can click X on an image to open it for viewing. It supports PNG and JPG/JPEG files only for now, up to 4096x4096 in size, anything larger will be rejected gracefully. You can flick between different images in the same folder with L1/R1, and zoom in and out with L2/R2. The DPAD can be used for panning. Note that larger files will need longer to decode and display.

Other than that, the footer buttons are more dynamic, they enable and disable, and can change text based on context. The fps/memory counter is gone, but can be shown by pressing both L3+R3. There is now a "Modified" column, showing last change date for a file or dir. Dotfiles (those that start with a .) are now visible, and also some bugs were fixed.

Thanks.

mohasi updated PS3 File Manager with a new update entry:

FTP, Image View & Fixes

In app FTP server:
I made the ftp server code from the "simple-ftp-plugin" re-useable, and now the file manager has the same functionality. Just press SELECT to start and stop the server, the IP address will display next to the button. If you already use the "simple-ftp-plugin", or a different plugin already running on port 21, then it will detect that and disable the button, but still show you the IP address, indicating its already running.

Image Viewer:
Now you can click X...

Read the rest of this update entry...
 
Back
Top