Hi Tony,<div><br></div><div>My case is that I have to call a gnu-smalltalk interpreter from Pharo, and I need to specify which image is the interpreter to run, so at one point I need the image local file path, see the following line: </div>

<div><br></div><div>(...) &#39;gst -I &#39;, (STFGSTImages <meta http-equiv="content-type" content="text/html; charset=utf-8"><span class="Apple-style-span" style="font-family: arial, sans-serif; font-size: 11px; border-collapse: collapse; ">fullRestorePathFor:</span> &#39;myGSTImage.im&#39;)</div>

<div><br></div><div>I know you can do that without using TFFiler, but as that&#39;s the package that restores my files into the file system I thought it&#39;d be nice if it could also tell you where did it store them in case you need to access them from outside Pharo, as in my case.</div>

<div><br></div><div>I haven&#39;t tried it yet, but this afternoon I&#39;ll give you some feedback. Thanks a lot again!</div><div><br></div><div>Bernat.</div><div><br><div class="gmail_quote">2011/2/9 Tony Fleig <span dir="ltr">&lt;<a href="mailto:tony.fleig@gmail.com">tony.fleig@gmail.com</a>&gt;</span><br>

<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">Hi Bernat,<br>
<br>
Ok. I have checked in a new version of TFFiler to<br>
<a href="http://www.squeaksource.com/TFFiler.html" target="_blank">http://www.squeaksource.com/TFFiler.html</a> with the following comment:<br>
<br>
Added methods #fullRestorePathFor:, #fullRestorePathFor:In:, and<br>
#targetDirectoryPath to the generated file container class. Added<br>
comments in generated methods. Minor refactoring.<br>
<br>
I hope it does what you need.<br>
<br>
There are three new methods in the file container classes that are<br>
created by TFFiler:<br>
<br>
#targetDirectoryPath<br>
    answers the path relative to the default directory into which<br>
files will be placed by #restoreDirectory.<br>
<br>
#fullRestorePathFor: aRestorePath<br>
    answers the default full file system path that will be used to<br>
restore the file identified by the aRestorePath.<br>
<br>
#fullRestorePathFor: aRestorePath In: aDirectoryPath<br>
    answers the full file system path that will be used to restore the<br>
file identified by aRestorePath when the file is restored to<br>
aDirectoryPath.<br>
<br>
I&#39;m curious as to what makes these methods useful to you.<br>
<br>
Regards,<br>
TF<br>
<br>
Blog: <a href="http://www.tonyfleig.com/smallthoughts" target="_blank">http://www.tonyfleig.com/smallthoughts</a><br>
<div><div></div><div class="h5"><br>
On Wed, Feb 9, 2011 at 12:37 AM, AxiNat &lt;<a href="mailto:tibabenfortlapalanca@gmail.com">tibabenfortlapalanca@gmail.com</a>&gt; wrote:<br>
&gt; Hi Tony,<br>
&gt; Exactly, I meant the full system path of a file that&#39;s stored in a container<br>
&gt; class, something like:<br>
&gt;<br>
&gt; localFilePathFor: aFileName<br>
&gt; ^  (FileDirectory default / relativePathToFile / aFileName) pathName<br>
&gt;<br>
&gt; I&#39;m using TFFiler in my app and it works very well, thanks again!<br>
&gt; Cheers,<br>
&gt; Bernat.<br>
&gt; 2011/2/8 Tony Fleig &lt;<a href="mailto:tony.fleig@gmail.com">tony.fleig@gmail.com</a>&gt;<br>
&gt;&gt;<br>
&gt;&gt; Hi Bernat,<br>
&gt;&gt;<br>
&gt;&gt; You mean the full system path of a file that is stored in a container<br>
&gt;&gt; class? That is, the location to which the file would be restored by<br>
&gt;&gt; #restoreDirectory?<br>
&gt;&gt;<br>
&gt;&gt; Or do you mean the full system path of an arbitrary file in the file<br>
&gt;&gt; system?<br>
&gt;&gt;<br>
&gt;&gt; TF<br>
&gt;&gt;<br>
&gt;&gt; On Mon, Feb 7, 2011 at 4:44 AM, AxiNat &lt;<a href="mailto:tibabenfortlapalanca@gmail.com">tibabenfortlapalanca@gmail.com</a>&gt;<br>
&gt;&gt; wrote:<br>
&gt;&gt; &gt; I&#39;d like to suggest a feature, some method like:<br>
&gt;&gt; &gt; TFFiler class &gt;&gt; fullPathOf: aFileName<br>
&gt;&gt; &gt; That returns the full system path for a given file.<br>
&gt;&gt; &gt; Cheers,<br>
&gt;&gt; &gt; Bernat.<br>
&gt;&gt; &gt; 2011/2/7 AxiNat &lt;<a href="mailto:tibabenfortlapalanca@gmail.com">tibabenfortlapalanca@gmail.com</a>&gt;<br>
&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; Tony, great work!<br>
&gt;&gt; &gt;&gt; I&#39;ll be using this one in production too :)<br>
&gt;&gt; &gt;&gt; Bernat Romagosa.<br>
&gt;&gt; &gt;&gt; 2011/2/4 Sven Van Caekenberghe &lt;<a href="mailto:sven@beta9.be">sven@beta9.be</a>&gt;<br>
&gt;&gt; &gt;&gt;&gt;<br>
&gt;&gt; &gt;&gt;&gt; Great idea Tony, this is indeed quite useful.<br>
&gt;&gt; &gt;&gt;&gt;<br>
&gt;&gt; &gt;&gt;&gt; Thanks (again) for sharing this and for doing all the documentation<br>
&gt;&gt; &gt;&gt;&gt; work!<br>
&gt;&gt; &gt;&gt;&gt;<br>
&gt;&gt; &gt;&gt;&gt; Sven<br>
&gt;&gt; &gt;&gt;&gt;<br>
&gt;&gt; &gt;&gt;&gt; On 04 Feb 2011, at 19:17, Tony Fleig wrote:<br>
&gt;&gt; &gt;&gt;&gt;<br>
&gt;&gt; &gt;&gt;&gt; &gt; I&#39;ve published a tool I&#39;m using called TFFiler.<br>
&gt;&gt; &gt;&gt;&gt; &gt;<br>
&gt;&gt; &gt;&gt;&gt; &gt; My problem was that I had a number of external files that were<br>
&gt;&gt; &gt;&gt;&gt; &gt; required for my Seaside web application. These were CSS, Javascript,<br>
&gt;&gt; &gt;&gt;&gt; &gt; and image files that had to be placed in a specific directory tree<br>
&gt;&gt; &gt;&gt;&gt; &gt; structure. When I moved my web app to another system, I always had<br>
&gt;&gt; &gt;&gt;&gt; &gt; to<br>
&gt;&gt; &gt;&gt;&gt; &gt; remember to reconstruct the external directory tree. Over time, the<br>
&gt;&gt; &gt;&gt;&gt; &gt; directory tree got larger and more complex.<br>
&gt;&gt; &gt;&gt;&gt; &gt;<br>
&gt;&gt; &gt;&gt;&gt; &gt; For deployment, I wanted the files to be served by Apache and not<br>
&gt;&gt; &gt;&gt;&gt; &gt; the<br>
&gt;&gt; &gt;&gt;&gt; &gt; Seaside ExternalFileLibrary. (ExternalFileLibrary was the most<br>
&gt;&gt; &gt;&gt;&gt; &gt; convenient approach during development.) This meant the directory<br>
&gt;&gt; &gt;&gt;&gt; &gt; tree<br>
&gt;&gt; &gt;&gt;&gt; &gt; should be moved to a location other than the Pharo Resources<br>
&gt;&gt; &gt;&gt;&gt; &gt; directory, which was the most convenient location during<br>
&gt;&gt; &gt;&gt;&gt; &gt; development.<br>
&gt;&gt; &gt;&gt;&gt; &gt;<br>
&gt;&gt; &gt;&gt;&gt; &gt; The current version of Monticello does not provide a way to save<br>
&gt;&gt; &gt;&gt;&gt; &gt; external files with a project. TFFiler addresses this shortcoming.<br>
&gt;&gt; &gt;&gt;&gt; &gt; Now<br>
&gt;&gt; &gt;&gt;&gt; &gt; when I load my project from Monticello the necessary external files<br>
&gt;&gt; &gt;&gt;&gt; &gt; are deployed automatically.<br>
&gt;&gt; &gt;&gt;&gt; &gt;<br>
&gt;&gt; &gt;&gt;&gt; &gt; Maybe someone else will find this useful as well.<br>
&gt;&gt; &gt;&gt;&gt; &gt;<br>
&gt;&gt; &gt;&gt;&gt; &gt; <a href="http://www.tonyfleig.com/smallthoughts/blog/tffiler" target="_blank">http://www.tonyfleig.com/smallthoughts/blog/tffiler</a><br>
&gt;&gt; &gt;&gt;&gt; &gt; <a href="http://www.squeaksource.com/TFFiler" target="_blank">http://www.squeaksource.com/TFFiler</a><br>
&gt;&gt; &gt;&gt;&gt; &gt;<br>
&gt;&gt; &gt;&gt;&gt; &gt; Regards,<br>
&gt;&gt; &gt;&gt;&gt; &gt; TF<br>
&gt;&gt; &gt;&gt;&gt; &gt; _______________________________________________<br>
&gt;&gt; &gt;&gt;&gt; &gt; seaside mailing list<br>
&gt;&gt; &gt;&gt;&gt; &gt; <a href="mailto:seaside@lists.squeakfoundation.org">seaside@lists.squeakfoundation.org</a><br>
&gt;&gt; &gt;&gt;&gt; &gt; <a href="http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside" target="_blank">http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside</a><br>
&gt;&gt; &gt;&gt;&gt;<br>
&gt;&gt; &gt;&gt;&gt; _______________________________________________<br>
&gt;&gt; &gt;&gt;&gt; seaside mailing list<br>
&gt;&gt; &gt;&gt;&gt; <a href="mailto:seaside@lists.squeakfoundation.org">seaside@lists.squeakfoundation.org</a><br>
&gt;&gt; &gt;&gt;&gt; <a href="http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside" target="_blank">http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside</a><br>
&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; _______________________________________________<br>
&gt;&gt; &gt; seaside mailing list<br>
&gt;&gt; &gt; <a href="mailto:seaside@lists.squeakfoundation.org">seaside@lists.squeakfoundation.org</a><br>
&gt;&gt; &gt; <a href="http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside" target="_blank">http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside</a><br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt;<br>
&gt;&gt; _______________________________________________<br>
&gt;&gt; seaside mailing list<br>
&gt;&gt; <a href="mailto:seaside@lists.squeakfoundation.org">seaside@lists.squeakfoundation.org</a><br>
&gt;&gt; <a href="http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside" target="_blank">http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside</a><br>
&gt;<br>
&gt;<br>
&gt; _______________________________________________<br>
&gt; seaside mailing list<br>
&gt; <a href="mailto:seaside@lists.squeakfoundation.org">seaside@lists.squeakfoundation.org</a><br>
&gt; <a href="http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside" target="_blank">http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside</a><br>
&gt;<br>
&gt;<br>
_______________________________________________<br>
seaside mailing list<br>
<a href="mailto:seaside@lists.squeakfoundation.org">seaside@lists.squeakfoundation.org</a><br>
<a href="http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside" target="_blank">http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside</a><br>
</div></div></blockquote></div><br></div>