在本页中:
dir
file
create-dir
date

1.12 使用文件和目录: "dir.rkt"

 (require htdp/dir) package: htdp-lib

本教学包提供处理文件和目录的结构体和函数:

struct

(struct dir (name dirs files)
    #:extra-constructor-name make-dir)
  name : (or/c string? symbol?)
  dirs : (listof dir?)
  files : (listof file?)
表示教学语言中的目录(文件夹)。

struct

(struct file (name size date content)
    #:extra-constructor-name make-file)
  name : (or/c string? symbol?)
  size : integer?
  date : (or/c 0 date?)
  content : any/c
表示教学语言中的文件。结构体的date(日期)字段(对于用户来说)是可选的。 使用三个参数调用make-field时,时间字段就填入0

函数

(create-dir path)  dir?

  path : string?
将计算机path路径上找到的目录转换为dir实例。

struct

(struct date (year month day hours minutes seconds)
    #:extra-constructor-name make-date)
  year : natural-number/c
  month : natural-number/c
  day : natural-number/c
  hours : natural-number/c
  minutes : natural-number/c
  seconds : natural-number/c
表示(用于文件的)日期。

示例:将教学包设为"dir.rkt",或将(require htdp/dir)添加到定义区。单击“运行”,然后查询当前目录的内容,可以得到这样的结果:
> (create-dir ".")
(make-dir
  "."
  '()
  (cons (make-file "arrow.scrbl" 1897 (make-date 15 1 15 11 22 21) "")
    (cons (make-file "convert.scrbl" 2071 (make-date 15 1 15 11 22 21) "")
      (cons (make-file "dir.scrbl" 1587 (make-date 8 7 8 9 23 52) "")
        (cons (make-file "docs.scrbl" 1259 (make-date 15 1 15 11 22 21) "")
          (cons (make-file "draw.scrbl" 5220 (make-date 15 1 15 11 22 21) "")
            (cons (make-file "elevator.scrbl" 1110 (make-date 15 1 15 11 22 21) ""))))))))
"."通常表示程序所在的目录。在这个例子中,目录中包含六个文件、不包含子目录。

注意 本库生成字符串形式的文件名,但为了向后兼容,构造函数也接受符号(形式的文件名)。

注意 软链接始终被视为空文件。

修改于package htdp-lib的1.0版本:建于1996年,用于HtDP/1e
修改于1.4版本:Fri Jul 8 13:09:13 EDT 2016 在文件表示中添加可选的date字段,增加字符串作为文件名的表示