There is always access to params hash, so you can check params[:controller] or params[:action] anywhere in your views. There is always request.env['PATH_INFO'], where the complete URL is stored as well.
As for the breadcrumb referenced in the second part of the question, I believe there is no general way of doing it. There is no solid background behind the relations between views. Site logic is basically constructed across the views, so there is no solid way of determining it.
Since you always have Files underneath Project in this particular view, where is the problem? Can't you just highlight project if Files are selected?
Edit:
Implementation really depends on your design and if you need direct hints, you would have to paste a gist/paste link to your code. In general the idea is as follows:
<% if params[:controller] == :files
<% b1class = "active" %>
<% b2class = "active" %>
<% b3class = "active" %>
<% else %>
....
<% end %>
<div class=breadcrumb>
<p class=<%= b1class> Project </p>
<p class=<%= b2class> Photos </p>
<p class=<%= b3class> Files </p>
</div>