Path: csiph.com!v102.xanadu-bbs.net!xanadu-bbs.net!feeder.erje.net!eu.feeder.erje.net!eternal-september.org!feeder.eternal-september.org!news.eternal-september.org!.POSTED!not-for-mail From: Martin Gregorie Newsgroups: comp.lang.java.programmer Subject: Re: A "current directory" concept for Java... Date: Sat, 23 Aug 2014 14:24:33 +0000 (UTC) Organization: A noiseless patient Spider Lines: 41 Message-ID: References: Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Injection-Date: Sat, 23 Aug 2014 14:24:33 +0000 (UTC) Injection-Info: mx05.eternal-september.org; posting-host="e5160e2be48f1ea550cf61512446f525"; logging-data="2139"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX191vd+f71wuVKl7vRavkWReBo0yNefOr3M=" User-Agent: Pan/0.139 (Sexual Chocolate; GIT bf56508 git://git.gnome.org/pan2) Cancel-Lock: sha1:Vn3nqT79YtC2QR9lMk0uo/xsD3k= Xref: csiph.com comp.lang.java.programmer:29821 On Fri, 22 Aug 2014 23:38:43 +0000, Andreas Leitgeb wrote: > I'll need to emulate some kind of current directory, > If you haven't already done so, take a look at File.listFiles() and its filter-equipped siblings. Those are what I've used when I've needed the equivalent of C's directory reading functions. The File[] array they return isn't in any particular order, but then neither are the files that repeated calls to the readdir() function returns. > and will need to > manually join user-provided relative paths (typically bare filenames) > to that current directory for various uses (open,remove,rename,...). > > easy enough using a recursive method with a File argument. Something like this does the trick if you want to walk a directory tree looking at all the files in it: void processDirectory(File dir) { File flist[] = f.listFiles(); for (int i = 0; i < flist.length; i++ { if (flist[i].isDirectory()) processDirectory(new File(dir, flist[i].getName())); else { /* Deal with the files in the list. */ } } } > Eventually I need to spawn processes, which then need that emulated > current directory to be their initial real current directory. > Do these have to be Java processes? -- martin@ | Martin Gregorie gregorie. | Essex, UK org |