#P1057. FILE MAPPING

FILE MAPPING

描述

对于计算机用户来说,查看计算机上文件结构的可视化表示通常是很有帮助的。微软 Windows 系统中的“资源管理器”就是这样一个系统的示例。然而,在图形用户界面出现之前,这样的可视化表示是不可能的。当时能做到的最好的方式是使用缩进作为目录内容的指引,展示目录和文件的静态“地图”。例如:

ROOT

| DIR1

| File1

| File2

| File3

| DIR2

| DIR3

| File1

File1

File2

这表明根目录包含两个文件和三个子目录。第一个子目录包含 3 个文件,第二个子目录为空,第三个子目录包含一个文件。

输入

编写一个程序,读取一系列表示计算机文件结构的数据集。一个数据集以包含单个 * 的行结束,有效数据的结束由包含单个 # 的行表示。数据集包含一系列文件和目录名称。(根目录被假定为起始点。)目录的结束由 ] 表示。目录名称以小写字母 d 开头,文件名称以小写字母 f 开头。文件名可能有也可能没有扩展名(例如 fmyfile.datfmyfile)。文件名和目录名中不能包含空格。

输出

请注意,任何目录的内容应首先列出所有子目录,然后列出文件(如果有的话)。每个目录内的所有文件应按字母顺序排列。注意,每个数据集的输出都由标签“DATA SET x:”标记,其中 x 表示数据集的编号,从 1 开始。还要注意输出数据集之间的空行。每个缩进级别应显示一个 | 后跟 5 个空格。

file1
file2
dir3
dir2
file1
file2
]
]
file4
dir1
]
file3
*
file2
file1
*
#
DATA SET 1:
ROOT
|     dir3
|     |     dir2
|     |     file1
|     |     file2
|     dir1
file1
file2
file3
file4

DATA SET 2:
ROOT
file1
file2

来源

太平洋西北地区 1998 年