No it would not require system() callls... The FindFirstFile(), FindNextFile(), CopyFile() etc calls that you would use are part of the standard Windows API and can be called directly from C code and will work on all versions of Windows since Win95.
The portability issue is going to be problematic since each OS has it's own filesystem and thus it's own API calls for locating and enumerating files.