createSync 抽象方法
在文件系统中创建符号链接。
创建的链接将指向target
指定的路径,无论该路径是否存在。
如果链接路径已存在,将抛出异常。
如果recursive
为false
(默认值),则只有在链接路径中的所有目录都存在时才创建链接。如果recursive
为true
,则首先创建所有不存在的父路径。除非它们也是在路径中,否则不会影响target
路径中的目录。
在Windows平台上,此调用将创建真实的符号链接而不是junction。Windows将文件链接和目录链接视为不同的、不可互换的链接类型。每个链接要么是文件链接,要么是目录链接,且链接类型在创建时确定,然后该链接在大多数情况下被视为文件或目录。用于操作每个链接的Win32 API调用各不相同。例如,使用DeleteFile
函数来删除文件链接,使用RemoveDirectory
来删除目录链接。
如果target
存在,创建的Windows符号链接将与target
的类型匹配;如果不存在,则创建文件链接。如果后来target
被替换为不同类型的对象,创建的链接类型不会改变,但此时使用resolveSymbolicLinks可能无法解析该链接。
为了在Windows上创建符号链接,Dart必须在管理员模式下运行或系统已启用开发者模式,否则当调用此方法时会抛出带有ERROR_PRIVILEGE_NOT_HELD
作为errno的FileSystemException。
在其他平台上,使用POSIX symlink()
调用来创建包含字符串target
的符号链接。如果target
是相对路径,它将被解释为相对于包含链接的目录的相对路径。
实现
void createSync(String target, {bool recursive = false});