Java has had historically frustrating API's for interacting with files. In Java 7, these API's were cleaned up a little bit. A blog post demonstrates some examples of using these new API's. I would say, though, that Factor demonstrates a much simpler cross-platform API:
Creating and Deleting Files
To create a file, simply:
( scratchpad ) "/path/to/file" touch-file
To update file permissions (on unix systems), you can use the io.files.info.unix vocabulary:
( scratchpad ) "/path/to/file" OCT: 666 set-file-permissions
Note: it would be nice to support parsing "rw-rw-rw-" and "g+x" and similar permission strings, and probably not very difficult.
To delete a file, simply:
( scratchpad ) "/path/to/file" delete-file
Copying and Moving Files
To copy a file from one path to another:
( scratchpad ) "/path/from" "/path/to" copy-file
To copy a file, and preserve its file permissions:
( scratchpad ) "/path/from" "/path/to" copy-file-and-info
To copy a file into a directory:
( scratchpad ) "/dir1/file" "/dir2" copy-file-into
To move a file from one path to another:
( scratchpad ) "/path/from" "/path/to" move-file
To move a file into a directory:
( scratchpad ) "/dir1/file" "/dir2" move-file-into
I like how the blog post says "[...] you can perform the following operations on files with only a single line of code:" and all the examples are 2 to 6 lines of crazy static typing redundancy.
ReplyDelete