If I've understood correctly, you want something like this:
RewriteEngine On
# Only redirect if we're in /directory/ and *not* pointing at
# a file that already exists in the filesystem
RewriteCond %{REQUEST_URI} ^/directory/
RewriteCond %{REQUEST_URI} !-f
RewriteRule . /directory/do [R,L]
Alternatively, if you meant "when the user accesses the URL mysite.com/directory/ fullstop", which on second thought you may have, this will work as well:
RewriteEngine On
RewriteCond %{REQUEST_URI} ^/directory/$
RewriteRule . /directory/do [R,L]
Edit: In case /do isn't an actual file:
RewriteEngine On
RewriteCond %{REQUEST_URI} ^/directory/
RewriteCond %{REQUEST_URI} !^/directory/do$
RewriteCond %{REQUEST_URI} !-f
RewriteRule . /directory/do [R,L]