import std.file;
voidmain(string[] args){
auto file = "test.txt";
auto size = 100;
try
{
if (file.exists() && file.isFile())
{
write(file, read(file, size));
}
}
catch (FileException ex)
{
}
}
创建zip文档
import std.file;
import std.outbuffer;
import std.string;
import std.zip;
voidmain(string[] args){
try
{
auto file = newArchiveMember();
file.name = "test.txt";
auto data = newOutBuffer();
data.write("Lorem ipsum");
file.expandedData = data.toBytes();
auto zip = newZipArchive();
zip.addMember(file);
write("test.zip", zip.build());
}
catch (ZipException ex)
{
}
}
读取zip文档
import std.file;
import std.zip;
voidmain(string[] args){
try
{
auto zip = newZipArchive(read("test.zip"));
foreach (filename, member; zip.directory)
{
auto data = zip.expand(member);
}
}
catch (ZipException ex)
{
}
}
写压缩
import std.file;
import std.zlib;
voidmain(string[] args){
try
{
auto data = compress("Lorem ipsum dolor sit amet");
write("test.dat", data);
}
catch (ZlibException ex)
{
}
}
读压缩
import std.file;
import std.zlib;
voidmain(string[] args){
try
{
auto data = uncompress(read("test.dat"));
}
catch (ZlibException ex)
{
}
}
posix
import core.stdc.errno;
import core.sys.posix.sys.stat;
import std.conv;
import std.string;
voidmain(string[] args){
auto file = "test.txt";
auto result = chmod(file.toStringz(), octal!(666));
if (result != 0)
{
switch(errno)
{
case EPERM:
case EACCES:
break;
case ENOENT:
break;
default:
break;
}
}
}
更改文件的所有者
import core.stdc.errno;
import core.sys.posix.pwd;
import core.sys.posix.unistd;
import std.string;
voidmain(string[] args){
auto username = "gary";
auto file = "test.txt";
auto record = getpwnam(username.toStringz());
if (record !is null)
{
auto user = record.pw_uid;
auto group = record.pw_gid;
auto result = chown(file.toStringz(), user, group);
if (result != 0)
{
switch(errno)
{
case EPERM:
break;
default:
break;
}
}
}
}
创建硬链接和符号链接
import core.stdc.errno;
import core.sys.posix.unistd;
import std.string;
voidmain(string[] args){
auto file = "test.txt";
auto linked = "link.txt";
auto result = link(file.toStringz(), linked.toStringz());
if (result != 0)
{
switch(errno)
{
case EPERM:
case EACCES:
break;
case EEXIST:
break;
case ENOENT:
default:
break;
}
}
}
创建符号链接
auto result = link(file.toStringz(), linked.toStringz());
字符串
auto result = symlink(file.toStringz(), linked.toStringz());
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列1:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
· 【杂谈】分布式事务——高大上的无用知识?