Из моих экспериментов, find
вернется 1
, когда он не может найти каких-либо результатов (find: /XXX/XXX/Documents/test1*: No such file or directory
)
Во-первых, вы должны действительно использовать ProcessBuilder
, это решает проблемы с параметрами, которые содержат пробелы, позволяет перенаправлять ввод/error, а также указать начальную позицию команды (если она вам понадобится).
Так, играя с ним, что-то вроде этого, казалось, работал для меня (MacOSX) ...
ProcessBuilder pb = new ProcessBuilder(
new String[]{
"find",
"/XXX/XXX/Documents/test1",
"-mtime", "+10",
"-type", "f",
"-delete"
}
);
pb.redirectErrorStream(true);
try {
Process p = pb.start();
InputStream is = p.getInputStream();
int in = -1;
while ((in = is.read()) != -1) {
System.out.print((char)in);
}
int exitWith = p.exitValue();
System.out.println("\nExited with " + exitWith);
} catch (IOException exp) {
exp.printStackTrace();
}
Попробуйте использовать полный путь к 'find' – Todd
Вы пробовали чтения' Process' 'InputStream' или 'ErrorStream'? Вы также должны использовать 'ProcessBuilder' – MadProgrammer