首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >用C++删除目录

用C++删除目录
EN

Stack Overflow用户
提问于 2018-09-02 18:10:21
回答 3查看 1.5K关注 0票数 0

我想在C,Windows中删除一个目录。我知道我必须首先删除目录中的所有文件,这是我感到困惑的部分。我找到了SHFileOperationIFileOperation,尽管我不明白它们是如何从文档中实现的。

我目前的实现:

代码语言:javascript
复制
int dir_exists = 0;
snprintf(dir_name, STR_SIZE, "%s\\%s", LOCAL_DIR, tokens[1]);

// Check if directory exists
DWORD dwAttrib = GetFileAttributes(dir_name);
if (dwAttrib != INVALID_FILE_ATTRIBUTES && (dwAttrib & FILE_ATTRIBUTE_DIRECTORY)) {
    dir_exists = 1;
}

if (dir_exists == 1) {

    // Remove contents of directory (CURRENTLY UNIX)
    DIR *dir;
    struct dirent *d;
    char filepath[FNAME_SIZE];
    dir = opendir(dir_name);
    while (d = readdir(dir)) {
        sprintf(filepath, "%s/%s", dir_name, d->d_name);
        remove(filepath);
    }

    // Remove directory
    if ((RemoveDirectory(dir_name)) == 0) {
        printf("Error removing dictionary\n");
        return 0;
    }
}

我想要一个视窗系统的替代部分评论没有使用#include <dirent.h>,因为我的VS没有这个头文件:

代码语言:javascript
复制
// Remove contents of directory (CURRENTLY UNIX)
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52135961

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档