I think the easiest way would be to create a file object manually, populate it with the file details, and save it using file_save()
:
global $user;$uri = 'public://path/to/file.txt';$filename = 'file.txt';$file = new stdClass;$file->uid = $user->uid;$file->filename = $filename;$file->uri = $uri;$file->filemime = 'text/plain';$file->filesize = filesize($uri);$file->status = 1;file_save($file);
After you've done that you'll probably also want to use the file_usage_add()
function to declare a vested interest in the file, so that it doesn't get deleted by any other system process:
$type = 'some_type'; // A string used by your module to identify this type of file entry$id = 'some_id'; // An identifier used by your module to identify this particular file file_usage_add($file, 'MYMODULE', $type, $id);