code: public PropertiesProxy joinByKey(String key) {
          String str = get(key);
          final PropertiesProxy me = this;
          if (!Strings.isBlank(str)) {
              String[] ss = Strings.splitIgnoreBlank(str, "\n");
              for (String s : ss) {
                  File f = Files.findFile(s);
                  if (null == f) {
                      throw Lang.makeThrow("Fail to found path '%s' in CLASSPATH or File System!", s);
                  }
                  // 如果是一个包，引用全部 Files
                  if (f.isDirectory()) {
                      Disks.visitFile(f, new FileVisitor() {
                          public void visit(File f) {
                              me.joinAndClose(Streams.fileInr(f));
                          }
                      }, new FileFilter() {
                          public boolean accept(File f) {
                              if (f.isDirectory())
                                  return !f.isHidden() && !f.getName().startsWith(".");
                              return f.getName().endsWith(".properties");
                          }
                      });
                  }
                  // 否则引用单个文件
                  else if (f.isFile()) {
                      this.joinAndClose(Streams.fileInr(f));
                  }
              }
          }
          return this;
      }
docs: 根据自身的一个键对应的值扩展自身的属性。
  <p>
  本函数假设你可能有下面的键值:
  
  <pre>
  ...
  files:
  path/to_a.properties
  path/to_b.properties
  #End files
  </pre>
  
  那么如果你调用 <code>joinByKey("files");</code> <br>
  则会将其值的两个属性文件展开，加入到自身。
  <p>
  属性文件的路径可以是磁盘全路径，或者在 CLASSPATH 里的路径
  
  @param key
  键
  @return 自身