fsutil is a file system utility plugin for Pawn.
Provides a simple API for checking existence, creating, reading and removing directories and moving/copying files or directories.
Simply install to your project:
sampctl package install Southclaws/samp-fsutilInclude in your code and begin using the library:
#include <fsutil>Exists, CreateDir, RemoveDir are self explanatory. Exists works on files
and directories.
OpenDir opens a directory ready for iterating, each DirNext call will
iterate through the directory, use it like
while(DirNext(dir, type, entry) { ... where type and entry are pass by
reference. When you're done, use CloseDir to close the directory and free
memory:
new
Directory:dir = OpenDir(testDir),
entry[256],
ENTRY_TYPE:type;
while(DirNext(dir, type, entry)) {
if(type == E_REGULAR) {
printf("File: %s", entry);
} else if(type == E_DIRECTORY) {
printf("Directory: %s", entry);
} else {
printf("Something else: %s", entry);
}
}
new ret = CloseDir(dir); // always close an open DirectoryMoveFile and CopyFile do exactly what you expect.
There are also a handful of helper functions for working with file paths:
PathSepPathJoinPathBasePathDirPathExt
See the source code for documentation.
To run unit tests for Windows, first build the plugin with Visual Studio. If you
use "Open CMake" mode, the .dll file will be output directly to the plugins
directory of the test runtime. If you use cmake to generate a solution file, the
.dll file will probably be in a directory inside plugins named Release (or
Debug) so you'll have to copy that out first with
cp test/plugins/Release/fsutil.dll test/plugins/fsutil.dll.
make test-windowsLinux testing can be done on Windows if you have Docker installed. The following
command just runs the same as the test-windows but with --container
activated to vitualise a Linux environment.
make test-linux