Under linux (and other Unix systems) tree can invoke
acroread, bzip2, gimp, groff, gv, gzip, jar, klyx, lynx, realplay, rpm, tar, unzip, uudecode, xanim, xdvi, xfig, xv and xwudto handle files with extensions
[1-9nlpo], [1-9][tTxX], avi, bmp, bz2, dvi, eps, eps.gz, eps.z, fig, gif, gz htm, htm.gz, html, html.gz, jar, jpeg, jpg, lyx, man, mpeg, mpg, ms, pbm, pcx, pdf, pdf.gz, pdf.z, pgm, pm, png, pnm, ppm, ps, ps.gz, ps.z, qt, rp, rpm, t[ag]z, tar, tar.gz, tar.z, tar.bz2, tga, tif, tiff, uue, xbm, xcf, xpm, xwd, z and zip.If you use another O.S. and change tree to suite your taste, please send me your patch to share it with other users.
If this is not enough, you can also give a command to open/view/process a file. Before sending a command to the system, a variable expansion is performed. For example,
fig2dev -L eps $f $p/$b.epswould convert the current fig file to eps format. $f would be expanded to the absolute path+filename, $p to the absoulte path and $b to the basename (the current file is the file pointed by the cursor).
Finally, please notice that tree can manage a large amount of data. In the figure above, 921 directories and 12,927 files are shown. The buffer has only 13,849 lines (15,622 if the padding would be set to on).