Search⌘ K
AI Features

Design In-Memory File System

Explore how to implement a file system structure in Go that supports initialization, directory creation, file content management, and listing contents ordered lexicographically. This lesson builds your skills in designing data structures for file management using coding interview patterns.

Statement

Design an in-memory file system by implementing a struct, FileSystem, which should provide the following functionalities:

  • Init(): Initializes the object of the system.

  • Ls(String path): If path is a file path, return a list that only contains the file’s name. If it’s a directory path, return the list of files and directory names in this directory. Your function should return the output (file and directory names together) in lexicographical order.

  • Void Mkdir(String path): If the given path does not exist, make a new directory according to it. The function should create all the middle directories in the path if they don’t exist.

  • Void AddContentToFile(String filePath, String content): If the file doesn’t exist, create that file containing the given content. If the file already exists, append the given content to the original content.

  • Void ReadContentFromFile(String filePath): Return given file’s content in string format.

Note: You may assume that all directory names and file names only contain lowercase letters, ...