No one says that you need to modify the .htacces and add the directory in the rewrite condition. I've created a directory "public" in the root directory alongside with "system", "application", "index.php". and edited the .htaccess file like this:
RewriteCond $1 !^(index\.php|public|robots\.txt)
Now you have to just call <?php echo base_url()."/public/yourdirectory/yuorfile";?>
You can add subdirectory inside "public" dir as you like.