<html><head> <link rel="stylesheet" href="style.css" type="text/css"> <meta content="text/html; charset=iso-8859-1" http-equiv="Content-Type"> <link rel="Start" href="index.html"> <link title="Index of types" rel=Appendix href="index_types.html"> <link title="Index of exceptions" rel=Appendix href="index_exceptions.html"> <link title="Index of values" rel=Appendix href="index_values.html"> <link title="Index of modules" rel=Appendix href="index_modules.html"> <link title="Index of module types" rel=Appendix href="index_module_types.html"> <link title="FileUtil" rel="Chapter" href="FileUtil.html"> <link title="FileUtilStr" rel="Chapter" href="FileUtilStr.html"> <link title="FilePath" rel="Chapter" href="FilePath.html"><title>FileUtil.rm</title> </head> <body> <code class="code"><span class="keyword">let</span> rm ?(force=<span class="constructor">Force</span>) ?(recurse=<span class="keyword">false</span>) fln_lst =<br> <span class="keyword">let</span> test_dir = <br> test (<span class="constructor">And</span>(<span class="constructor">Is_dir</span>, <span class="constructor">Not</span>(<span class="constructor">Is_link</span>)))<br> <span class="keyword">in</span><br> <br> <span class="keyword">let</span> rmdir fn =<br> <span class="keyword">try</span> <br> <span class="constructor">Unix</span>.rmdir fn<br> <span class="keyword">with</span> <span class="constructor">Unix</span>.<span class="constructor">Unix_error</span>(<span class="constructor">Unix</span>.<span class="constructor">ENOTEMPTY</span>,_,_) <span class="keywordsign">-></span><br> raise (<span class="constructor">RmDirNotEmpty</span> fn)<br> <span class="keyword">in</span><br> <br> <span class="keyword">let</span> <span class="keyword">rec</span> rm_aux lst = <br> <span class="constructor">List</span>.iter <br> (<span class="keyword">fun</span> fn <span class="keywordsign">-></span><br> <span class="keyword">if</span> test <span class="constructor">Exists</span> fn <span class="keywordsign">&&</span> (doit force fn) <span class="keyword">then</span><br> (<br> <span class="keyword">if</span> test_dir fn <span class="keyword">then</span><br> (<br> <span class="keyword">if</span> recurse <span class="keyword">then</span><br> (<br> rm_aux (ls fn);<br> rmdir fn<br> )<br> <span class="keyword">else</span><br> (<br> raise (<span class="constructor">RmDirNoRecurse</span> fn)<br> )<br> )<br> <span class="keyword">else</span><br> (<br> <span class="constructor">Unix</span>.unlink fn<br> )<br> )<br> )<br> lst<br> <span class="keyword">in</span><br> <br> rm_aux fln_lst</code></body></html>