private JwList<String> getLocalFilenames(String path) {
    File f = new File(path);
    if (!f.exists()) return new JwList<String>();

    JwList<String> v = new JwList<String>();
    for (File e : f.listFiles()) {
      if (e.isFile()) v.add(e.getName());
    }
    return v;
  }
 private JwList<String> getMissingFilenames(
     JwList<String> sourceFilenames, JwList<String> targetFilenames) {
   JwList<String> v = new JwList<String>();
   for (String e : sourceFilenames) if (!targetFilenames.contains(e)) v.add(e);
   return v;
 }