file模块

getSize

ulong getSize(R)(R name)
if (isSomeFiniteCharInputRange!R && !isConvertibleToString!R);

ulong getSize(R)(auto ref R name)
if (isConvertibleToString!R);

获取文件名字的大小(以字节为单位)。

参数:

  • name:表示文件名的字符串或字符范围。

返回值:文件大小(以字节为单位)。

抛出异常:FileException,例如文件不存在。

示例:

scope(exit) deleteme.remove;

// 创建一个大小为1的文件
write(deleteme, "a");
writeln(getSize(deleteme)); // 1

// 创建一个大小为3的文件
write(deleteme, "abc");
writeln(getSize(deleteme)); // 3

getTimes

void getTimes(R)(R name, out SysTime accessTime, out SysTime modificationTime)
if (isSomeFiniteCharInputRange!R && !isConvertibleToString!R);

void getTimes(R)(auto ref R name, out SysTime accessTime, out SysTime modificationTime)
if (isConvertibleToString!R);

获取文件或文件夹的访问时间和修改时间。

参数:

  • name:要获取时间的文件名或文件夹名。
  • accessTime:文件/文件夹的最后访问时间。
  • modificationTime:文件/文件夹的最后修改时间。

抛出异常:FileException

示例:

import std.datetime : abs, SysTime;

scope(exit) deleteme.remove;
write(deleteme, "a");

SysTime accessTime, modificationTime;

getTimes(deleteme, accessTime, modificationTime);

import std.datetime : Clock, seconds;
auto currTime = Clock.currTime();
enum leeway = 5.seconds;

auto diffAccess = accessTime - currTime;
auto diffModification = modificationTime - currTime;
assert(abs(diffAccess) <= leeway);
assert(abs(diffModification) <= leeway);

getTimesWin

void getTimesWin(R)(R name, out SysTime fileCreationTime, out SysTime fileAccessTime, out SysTime fileModificationTime)
if (isSomeFiniteCharInputRange!R || isConvertibleToString!R);

此函数仅适用于Windows。

获取文件名的创建时间、访问时间和修改时间。

参数:

  • name:要获取时间的文件名。
  • fileCreationTime:文件的创建时间。
  • fileAccessTime:文件的最后访问时间。
  • fileModificationTime:文件的最后修改时间。

抛出异常:FileException

setTimes

void setTimes(R)(R name, SysTime accessTime, SysTime modificationTime)
if (isSomeFiniteCharInputRange!R && !isConvertibleToString!R);

void setTimes(R)(auto ref R name, SysTime accessTime, SysTime modificationTime)
if (isConvertibleToString!R);

设置文件或文件夹的访问时间和修改时间。

参数:

  • name:要设置时间的文件名或文件夹名。
  • accessTime:文件/文件夹的最后访问时间。
  • modificationTime:文件/文件夹的最后修改时间。

抛出异常:FileException

示例:

import std.datetime : DateTime, hnsecs, SysTime;

scope(exit) deleteme.remove;
write(deleteme, "a");

SysTime accessTime = SysTime(DateTime(2010, 10, 4, 0, 0, 30));
SysTime modificationTime = SysTime(DateTime(2018, 10, 4, 0, 0, 30));
setTimes(deleteme, accessTime, modificationTime);

SysTime accessTimeResolved, modificationTimeResolved;
getTimes(deleteme, accessTimeResolved, modificationTimeResolved);

writeln(accessTime); // accessTimeResolved
writeln(modificationTime); // modificationTimeResolved

timeLastModified

SysTime timeLastModified(R)(R name)
if (isSomeFiniteCharInputRange!R && !isConvertibleToString!R);

SysTime timeLastModified(R)(auto ref R name)
if (isConvertibleToString!R);

返回给定文件的最后修改时间。

参数:

  • name:要检查的文件名。

返回值:std.datetime.systime.SysTime

抛出异常:如果给定的文件不存在,则抛出FileException

示例:

import std.datetime : abs, DateTime, hnsecs, SysTime;
scope(exit) deleteme.remove;

import std.datetime : Clock, seconds;
auto currTime = Clock.currTime();
enum leeway = 5.seconds;
deleteme.write("bb");
assert(abs(deleteme.timeLastModified - currTime) <= leeway);
``
关于dlang语言的file模块以下内容请用好看的markdown翻译内容如下:ulong getSizeRR nameif isSomeFiniteCharInputRange!R && !isConvertibleToString!R;ulong getSizeRauto ref R nameif isConvertibleToString!R;Get size of file name in

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

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