code: public static List<String> listFileNames(String path) throws IORuntimeException {
  		if (path == null) {
  			return null;
  		}
  		List<String> paths = new ArrayList<String>();
  
  		int index = path.lastIndexOf(FileUtil.JAR_PATH_EXT);
  		if (index == -1) {
  			// 普通目录路径
  			File[] files = ls(path);
  			for (File file : files) {
  				if (file.isFile()) {
  					paths.add(file.getName());
  				}
  			}
  		} else {
  			// jar文件
  			path = getAbsolutePath(path);
  			if (false == StrUtil.endWith(path, UNIX_SEPARATOR)) {
  				path = path + UNIX_SEPARATOR;
  			}
  			// jar文件中的路径
  			index = index + FileUtil.JAR_FILE_EXT.length();
  			JarFile jarFile = null;
  			try {
  				jarFile = new JarFile(path.substring(0, index));
  				final String subPath = path.substring(index + 2);
  				for (JarEntry entry : Collections.list(jarFile.entries())) {
  					final String name = entry.getName();
  					if (name.startsWith(subPath)) {
  						final String nameSuffix = StrUtil.removePrefix(name, subPath);
  						if (false == StrUtil.contains(nameSuffix, UNIX_SEPARATOR)) {
  							paths.add(nameSuffix);
  						}
  					}
  				}
  			} catch (IOException e) {
  				throw new IORuntimeException(StrUtil.format("Can not read file path of [{}]", path), e);
  			} finally {
  				IoUtil.close(jarFile);
  			}
  		}
  		return paths;
  	}
docs: 获得指定目录下所有文件<br>
  不会扫描子目录
  
  @param path 相对ClassPath的目录或者绝对路径目录
  @return 文件路径列表（如果是jar中的文件，则给定类似.jar!/xxx/xxx的路径）
  @throws IORuntimeException IO异常