private static DynamicArray<String> normalizePath(DynamicArray<String> pathElements) { DynamicArray<String> results = new DynamicArray<String>(pathElements.size()); for (int i = 0; i < pathElements.size; i++) { String s = (String) pathElements.data[i]; if (s.equals(".") || s.equals("/") || s.equals("\\") || s.equals("")) { // no-op } else if (s.equals("..")) { // TODO - Throw if no more elements results.remove(results.size() - 1); } else { results.add(s); } } return results; }