首页 > 编程语言 >C++判断文件是否被占用

C++判断文件是否被占用

时间:2024-09-09 22:47:35浏览次数:12  
标签:std 文件 return filePath 占用 C++ hFile

1.代码

#include <windows.h>
#include <iostream>

bool IsFileInUse(const std::wstring& filePath) {
    HANDLE hFile = CreateFileW(
        filePath.c_str(),
        GENERIC_READ,
        0,  // 不允许其他进程共享
        NULL,
        OPEN_EXISTING,
        FILE_ATTRIBUTE_NORMAL,
        NULL
    );

    if (hFile == INVALID_HANDLE_VALUE) {
        DWORD dwError = GetLastError();
        if (dwError == ERROR_SHARING_VIOLATION) {
            return true;  // 文件被占用
        }
        return false;  // 文件不存在或其他错误
    }

    CloseHandle(hFile);
    return false;  // 文件未被占用
}

int main() {
    std::wstring filePath = L"C:\\path\\to\\your\\file.txt";
    if (IsFileInUse(filePath)) {
        std::wcout << L"File is in use." << std::endl;
    } else {
        std::wcout << L"File is not in use." << std::endl;
    }
    return 0;
}

 

标签:std,文件,return,filePath,占用,C++,hFile
From: https://www.cnblogs.com/judes/p/18405529

相关文章

  • 在windows中命令删除文件及文件夹,避免删除文件慢,资源管理器卡死。
    在Windows命令提示符(CMD)中,del和rmdir是两个常用的命令,用于删除文件和目录。以下是对这两个命令的详细解释及其用法:del命令del命令用于删除一个或多个文件。它的基本语法如下:del[选项]<文件名>常用选项:/F:强制删除只读文件。/Q:安静模式,删除时不显示确认提示。/S:从......
  • 人工智能在C/C++中的应用
    随着技术的飞速发展,人工智能(AI)已经成为我们日常生活中不可或缺的一部分。从智能手机的语音助手到自动驾驶汽车,AI的应用无处不在。在众多编程语言中,C和C++因其高性能和灵活性,成为实现复杂AI算法的理想选择。人工智能简介人工智能是计算机科学的一个分支,它试图理解智能的实质,......
  • C++入门基础知识58——【关于C++基本的输入输出】
    成长路上不孤单......
  • C++ 日期 & 时间
    C++标准库没有提供所谓的日期类型。C++继承了C语言用于日期和时间操作的结构和函数。为了使用日期和时间相关的函数和结构,需要在C++程序中引用<ctime>头文件。有四个与时间相关的类型:clock_t、time_t、size_t 和 tm。类型clock_t、size_t和time_t能够把系统时间......
  • 两个月冲刺软考——位示图题型的例题讲解与分析;索引文件的详细解读
    1.位示图位示图(Bitmap)是一种数据结构,用于表示和存储图像信息。在计算机科学中,位示图通常指的是一个二维的数组,每个元素称为一个像素,每个像素可以存储一个颜色值。可以将位示图类比为电影院选座操作,其中1表示被占用,0表示空闲。例题:求在位示图中的第几个字中描述;将该字的......
  • 深入探索C++回调与函数绑定:用多态巧妙实现图形面积计算
    整体代码:这段代码的核心在于使用回调函数(Callback)机制和函数绑定(`std::bind`),通过一个`Figure`类动态地调用不同图形(矩形、圆形、三角形)的显示和面积计算函数。让我们一步一步地分块解释其中的内容。#include<iostream>#include<cmath>#include<functional>usingstd......
  • Win11系统提示找不到rdvgogl32.dll文件的解决办法
    其实很多用户玩单机游戏或者安装软件的时候就出现过这种问题,如果是新手第一时间会认为是软件或游戏出错了,其实并不是这样,其主要原因就是你电脑系统的该dll文件丢失了或没有安装一些系统软件平台所需要的动态链接库,这时你可以下载这个rdvgogl32.dll文件(挑选合适的版本文件)把它......
  • Win11系统提示找不到rdvgu1164.dll文件的解决办法
    其实很多用户玩单机游戏或者安装软件的时候就出现过这种问题,如果是新手第一时间会认为是软件或游戏出错了,其实并不是这样,其主要原因就是你电脑系统的该dll文件丢失了或没有安装一些系统软件平台所需要的动态链接库,这时你可以下载这个rdvgu1164.dll文件(挑选合适的版本文件)把它......
  • Win11系统提示找不到rdvvmtransport.dll文件的解决办法
    其实很多用户玩单机游戏或者安装软件的时候就出现过这种问题,如果是新手第一时间会认为是软件或游戏出错了,其实并不是这样,其主要原因就是你电脑系统的该dll文件丢失了或没有安装一些系统软件平台所需要的动态链接库,这时你可以下载这个rdvvmtransport.dll文件(挑选合适的版本文件......
  • Win11系统提示找不到ReactNativeXaml.dll文件的解决办法
    其实很多用户玩单机游戏或者安装软件的时候就出现过这种问题,如果是新手第一时间会认为是软件或游戏出错了,其实并不是这样,其主要原因就是你电脑系统的该dll文件丢失了或没有安装一些系统软件平台所需要的动态链接库,这时你可以下载这个ReactNativeXaml.dll文件(挑选合适的版本文......