/** * The file class represents a file in nextcloud. * It exposes file properties and content handling, commenting and tagging */ export default abstract class FileSystemElement { /** * The name of the file system element including the path * The name is readonly */ abstract get name(): string; /** * The base name of the file system element (name without path) * The base name is readonly */ abstract get baseName(): string; /** * The timestamp of the last file system element change * readonly */ abstract get lastmod(): Date; /** * The unique id of the file system element. */ abstract get id(): number; /** * deletes a file system element * @throws Error */ abstract delete(): Promise; /** * moves or renames the current file system element to the new location * target folder must exists * @param targetFileName the name of the target file /f1/f2/myfile.txt * @throws Error */ abstract move(targetName: string): Promise; /** * @returns the url of the file sytsem element * @throws Error */ abstract getUrl(): string; /** * @returns the url of the file system element in the UI * @throws Error */ abstract getUIUrl(): string; /** * adds a tag name to the file system element * @param tagName name of the tag */ abstract addTag(tagName: string): Promise; /** * get tag names * @returns array of tag names */ abstract getTags(): Promise; /** * removes a tag of the file system element * @param tagName the name of the tag */ abstract removeTag(tagName: string): Promise; /** * add comment to file * @param comment the comment */ abstract addComment(comment: string): Promise; /** * get list of comments of file * @param top number of comments to return * @param skip the offset * @returns array of comment strings * @throws Exception */ abstract getComments(top?: number, skip?: number): Promise; }