中级农民
- 积分
- 109
- 大米
- 颗
- 鳄梨
- 个
- 水井
- 尺
- 蓝莓
- 颗
- 萝卜
- 根
- 小米
- 粒
- 学分
- 个
- 注册时间
- 2015-7-25
- 最后登录
- 1970-1-1
|
- public class FileSystem {
- class File {
- boolean isFile = false;
- Map<String, File> children = new HashMap<>();
- String content = "";
- }
-
- File root = null;
-
- public FileSystem() {
- root = new File();
- }
-
- public List<String> ls(String path) {
- String[] dirs = path.split("/");
- File node = root;
- List<String> result = new ArrayList<>();
- String name = "";
- for (String dir : dirs) {
- if (dir.length() == 0) continue;
- if (!node.children.containsKey(dir)) {
- return result;
- }
- node = node.children.get(dir);
- name = dir;
- }
-
- if (node.isFile) {
- result.add(name);
- }
- else {
- for (String key : node.children.keySet()) {
- result.add(key);
- }
- }
-
- Collections.sort(result);
-
- return result;
- }
-
- public void mkdir(String path) {
- String[] dirs = path.split("/");
- File node = root;
- for (String dir : dirs) {
- if (dir.length() == 0) continue;
- if (!node.children.containsKey(dir)) {
- File file = new File();
- node.children.put(dir, file);
- }
- node = node.children.get(dir);
- }
- }
-
- public void addContentToFile(String filePath, String content) {
- String[] dirs = filePath.split("/");
- File node = root;
- for (String dir : dirs) {
- if (dir.length() == 0) continue;
- if (!node.children.containsKey(dir)) {
- File file = new File();
- node.children.put(dir, file);
- }
- node = node.children.get(dir);
- }
- node.isFile = true;
- node.content += content;
- }
-
- public String readContentFromFile(String filePath) {
- String[] dirs = filePath.split("/");
- File node = root;
- for (String dir : dirs) {
- if (dir.length() == 0) continue;
- if (!node.children.containsKey(dir)) {
- File file = new File();
- node.children.put(dir, file);
- }
- node = node.children.get(dir);
- }
- return node.content;
- }
- }
复制代码 |
|