File模块

rmdir

void rmdir(R)(R pathname)
if (isSomeFiniteCharInputRange!R && !isConvertibleToString!R);

删除目录。

参数:

  • R pathname:指定目录名称的范围或字符串。

抛出:

  • 在错误时抛出 FileException。

示例:

auto dir = deleteme ~ "dir";

dir.mkdir;
assert(dir.exists);
dir.rmdir;
assert(!dir.exists);

symlink

void symlink(RO, RL)(RO original, RL link)
if ((isSomeFiniteCharInputRange!RO || isConvertibleToString!RO) && (isSomeFiniteCharInputRange!RL || isConvertibleToString!RL));

仅适用于POSIX系统。创建符号链接(symlink)。

参数:

  • RO original:被链接的文件。这是存储在符号链接中的目标路径。相对路径是相对于创建的符号链接的。
  • RL link:要创建的符号链接。相对路径是相对于当前工作目录的。

抛出:

  • 在错误时抛出 FileException(包括如果符号链接已经存在)。

readLink

string readLink(R)(R link)
if (isSomeFiniteCharInputRange!R || isConvertibleToString!R);

仅适用于POSIX系统。返回符号链接所指向的文件路径。请注意,路径可能是相对路径或绝对路径,具体取决于符号链接。如果路径是相对路径,则相对于符号链接,而不是当前工作目录。

抛出:

  • 在错误时抛出 FileException。

getcwd

@trusted string getcwd();

获取当前工作目录。

抛出:

  • 在错误时抛出 FileException。

示例:

auto s = getcwd();
assert(s.length);

thisExePath

@trusted string thisExePath();

返回当前可执行文件的完整路径。

返回:

  • 可执行文件的路径字符串。

抛出:

  • 异常。

示例:

import std.path : isAbsolute;
auto path = thisExePath();

assert(path.exists);
assert(path.isAbsolute);
assert(path.isFile);

DirEntry

struct DirEntry;

类似于在POSIX系统上通过stat获得的文件信息。

@safe this(return scope string path);

为给定的文件(或目录)构造一个DirEntry。

参数:

  • string path:要获取DirEntry的文件(或目录)。

抛出:

  • 如果文件不存在,则抛出 FileException。
const @property @safe string name() return;

返回此DirEntry表示的文件的路径。

示例:

auto de1 = DirEntry("/etc/fonts/fonts.conf");
assert(de1.name == "/etc/fonts/fonts.conf");

auto de2 = DirEntry("/usr/share/include");
assert(de2.name == "/usr/share/include");
@property @safe bool isDir();

返回此DirEntry表示的文件是否为目录。

示例:

auto de1 = DirEntry("/etc/fonts/fonts.conf");
assert(!de1.isDir);

auto de2 = DirEntry("/usr/share/include");
assert(de2.isDir);
@property @safe bool isFile();

返回此DirEntry表示的文件是否为文件。

在Windows上,如果文件不是目录,则它是文件。因此,isFile或isDir将返回true。

在POSIX系统上,如果isFile为true,则表示该文件是常规文件(例如不是块设备)。因此,在POSIX系统上,对于特定文件,isFile和isDir可能都是false(在这种情况下,它是特殊文件)。您可以使用attributes或statBuf获取有关特殊文件的更多信息(请参阅stat手册页以获取详细信息)。

示例:

auto de1 = DirEntry("/etc/fonts/fonts.conf");
assert(de1.isFile);

auto de2 = DirEntry("/usr/share/include");
assert(!de2.isFile);
@property @safe bool isSymlink();

返回此DirEntry表示的文件是否为符号链接。

在Windows上,当文件是符号链接或连接点时返回true。

@property @safe ulong size();

返回此DirEntry表示的文件的大小(以字节为单位)

关于dlang语言的file模块以下内容请用好看的markdown格式翻译成中文内容如下:void rmdirRR pathnameif isSomeFiniteCharInputRange!R && !isConvertibleToString!R;void rmdirRauto ref R pathnameif isConvertibleToString!R;Remove directory

原文地址: http://www.cveoy.top/t/topic/gSAQ 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录