create 抽象方法

Future<Link> create(
  1. String target,
  2. {bool recursive = false}
)

在文件系统中创建一个符号链接。

创建的链接将指向 target 路径,无论该路径是否存在。

返回一个 Future<Link> 对象,当链接创建完成后完成。如果链接路径已存在,未来对象将完成并带上错误。

如果 recursivefalse(默认值),则只有在路径中的所有目录都存在时,才会创建链接。如果 recursivetrue,则先创建所有不存在的父路径。不会影响 target 路径中的目录,除非它们也在 path 中。

在 Windows 平台上,此调用会创建一个真正的符号链接,而不是链接节点。Windows 将对文件的链接和对目录的链接视为不同的、不可互换的链接类型。每个链接要么是文件链接,要么是目录链接,类型在创建时选择,然后链接在大多数情况下都作为文件或目录计数。不同的 Win32 API 调用用于操作每个链接。例如,使用 DeleteFile 函数来删除指向文件的链接,必须使用 RemoveDirectory 来删除指向目录的链接。

创建的 Windows 符号链接将与 target 的类型匹配,如果 target 存在的话,否则将创建一个文件链接。如果 target 在之后被替换为不同类型的项,创建链接的类型不会改变,但是链接将无法由 resolveSymbolicLinks 解析。

为了在 Windows 上创建符号链接,Dart 必须以管理员模式运行或系统必须已启用开发者模式,否则在调用此方法时将抛出带有 ERROR_PRIVILEGE_NOT_HELD 设置为 errno 的 FileSystemException

在其他平台上,使用 POSIX 的 symlink() 调用来创建包含字符串 target 的符号链接。如果 target 是相对路径,它将被解释为链接所在的目录的相对路径。

实现

Future<Link> create(String target, {bool recursive = false});