精华内容
下载资源
问答
  • 2019-12-09 15:46:52

    所需头文件:

    #include <io.h>
    #include <sys/types.h>
    #include <sys/stat.h>
    #include <sys/locking.h>
    #include <share.h>
    #include <fcntl.h>

     

    函数:

    bool IsFileUsed(const char* filePath)
    {
        bool ret = false;
        int fh = _sopen(filePath, _O_RDWR, _SH_DENYRW,
            _S_IREAD | _S_IWRITE );
        if(-1 == fh)
            ret = true;    
        else
            _close(fh);
        return ret;
    }

    更多相关内容
  • 摘要:C#源码,文件操作,文件占用 C#判断文件是否正在使用,也就是是否占用,占用的话,如果我们此时要删除文件,会得到一个文件其它程序占用而无法删除的提示,本程序仅是判断文件是否正在使用中,除此之外...
  • C#判断文件是否被占用

    千次阅读 2021-04-12 16:05:43
    在C#中判断文件是否被占用一般有两种方法,一是利用FileStream结合try...catch...finally实现,二是调用Windows API实现,下面给出两种方法的代码。 2、文件流法 using System; using System.Collections.Generic; ...

    1、前言

    C#中判断文件是否被占用一般有两种方法,一是利用FileStream结合try...catch...finally实现,二是调用Windows API实现,下面给出两种方法的代码。

    2、文件流法

    using System;
    using System.Collections.Generic;
    using System.IO;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    
    namespace ConsoleApp3
    {
        class Program
        {
            static void Main(string[] args)
            {
                string filePath = @"D:\data.xlsx";
                bool occupied = IsOccupied(filePath);
                if (occupied)
                {
                    Console.WriteLine("文件被占用");
                }
                else
                {
                    Console.WriteLine("文件未被占用");
                }
                Console.ReadKey(true);
            }
    
            static bool IsOccupied(string filePath)
            {
                FileStream stream = null;
                try
                {
                    stream = new FileStream(filePath, FileMode.Open, FileAccess.Read, FileShare.None);
                    return false;
                }
                catch
                {
                    return true;
                }
                finally
                {
                    if (stream != null)
                    {
                        stream.Close();
                    }
                }
            }
        }
    }
    

    3、Windows API法

    using System;
    using System.Runtime.InteropServices;
    
    namespace ConsoleApp3
    {
        class Program
        {
            // 判断文件是否打开
            [DllImport("kernel32.dll")]
            public static extern IntPtr _lopen(string lpPathName, int iReadWrite);
    
            // 关闭文件句柄
            [DllImport("kernel32.dll")]
            public static extern bool CloseHandle(IntPtr hObject);
    
            // 常量
            public const int OF_READWRITE = 2;
            public const int OF_SHARE_DENY_NONE = 0x40;
            public static readonly IntPtr HFILE_ERROR = new IntPtr(-1);
    
            static void Main(string[] args)
            {
                string filePath = @"D:\data.xlsx";
                bool occupied = IsOccupied(filePath);
                if (occupied)
                {
                    Console.WriteLine("文件被占用");
                }
                else
                {
                    Console.WriteLine("文件未被占用");
                }
                Console.ReadKey(true);
            }
    
            static bool IsOccupied(string filePath)
            {
                IntPtr handler = _lopen(filePath, OF_READWRITE | OF_SHARE_DENY_NONE);
                CloseHandle(handler);
                return handler == HFILE_ERROR;
            }
        }
    }
    
    展开全文
  • Delphi 判断文件是否占用,这个在删除的时候,可以添加上此功能,因为文件占用的话,用户删除时会出错,用本代码可以先判断一下文件是否占用,用弹窗方式告诉用户是否可以删除,如果没有占用,则程序进行下...
  • C# 判断文件是否被占用 public bool IsOccupied(string fileFullNmae)
  • 思想:文件打开时,给它建立一个临时文件,其他操作要打开这个文件,先检测临时文件在不,在的话就DENY掉.。实现:private void checkFile(File file, long beginTime, int timeOut) throws InterruptedException, ...

    思想:

    文件打开时,给它建立一个临时文件,其他操作要打开这个文件,先检测临时文件在不,在的话就DENY掉.。

    实现:

    private   void   checkFile(File   file,   long   beginTime,   int   timeOut)   throws   InterruptedException,   IOException   {

    while   (true)   {

    //check   file,   is   modified?

    if   (file.lastModified()   >   beginTime)   {

    System.out.println("modified...");

    File   temp   =   new   File(file.getParent()   +   "//~"   +   file.getName());

    while   (true)   {

    //check   the   file   is   released?

    if   (file.renameTo(temp))   {

    //recover   the   file

    temp.renameTo(file);

    break;

    }

    else   {

    System.out.println("waiting   for   release");

    Thread.sleep(timeOut);

    }

    }

    break;

    }

    else   {

    System.out.println("waiting...");

    Thread.sleep(timeOut);

    }

    }

    }

    先用lastModified判断文件是否被修改.

    再判断文件是否被释放(不再被占用),用renameTo判断。

    调用:

    File   file   =   new   File(FILE_NAME);     //get   the   last   modified   time     long   beginTime   =   file.lastModified();     //start   excel       Runtime.getRuntime().exec("cmd   /c   start   "   +   FILE_NAME);     this.checkFile(file,   beginTime,   500);

    展开全文
  • 判断目标文件是否独占,提供了相关的封装函数,可以直接拿去使用。

    VC++常用功能开发汇总(专栏文章列表,欢迎订阅,持续更新...)icon-default.png?t=M3K6https://blog.csdn.net/chenlycly/article/details/124272585       在IM软件中发起文件发送时,如果要发送的是某word文件,并且该word文件被office打开,则会提示文件正在被占用无法发送,如下所示:

     那文件被占用到底是如何判断出来的呢&#x

    展开全文
  • 查看哪个文件正在哪个exe打开,占用
  • 可以试一下以下两个程序:先运行这个,让一个文件处于使用状态:import java.io.*;public class FileLocker {public static void main (String args[]) {try {File f = new File("a.txt");f.createNewFile();...
  • C++判断文件是否被占用

    千次阅读 2022-03-14 17:33:37
    /* * text.cpp * * Created on: Mar 14, 2022 * Author: lu */ #include <iostream> #include <... * 如果没输出(或者退出状态非0) 表示filename没在操作 */ static int get_file_state(st.
  • C#实现判断文件是否占用与解除文件占用  收藏 北风其凉   发表于 8个月前 阅读 915 收藏 2 点赞 0 评论 0  https://my.oschina.net/Tsybius2014/blog/780750 ...
  • if __name__ == '__main__': test() 详解 检查文件是否能使用写的方式打开 使用winapi的CreateFile对文件进行操作,如果不报异常的话即可认为是可以打开的 注意如果文件不存在,则也返回True 注意如果文件不可写等...
  • Qt判断文件是否被占用,是否可修改

    千次阅读 2020-11-24 15:39:21
    这2个类都没有明确给出API如何判断一个文件是否被占用,是否能修改、删除等。 网上也没有人发在Qt下如何实现的。 由于自己需要使用这个功能,没办法,只有自己想办法。想来想去,也没有好主意,只能来硬的。 实现...
  • 一、思路1、通过window的aip函数CreateFile()函数获得文件句柄2、检测在获得句柄的时候是否报错“文件被占用无法打开”3、如果没有报错返回文件句柄,说明文件没有被占用;如果报错说明文件被占用二、需importimport...
  • C++ /MFC 判断文件是否被占用

    千次阅读 2019-11-02 08:54:25
    HANDLE Handle; Handle = CreateFile(szPath, GENERIC_READ,0,NULL,OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,NULL); if(INVALID_HANDLE_VALUE == Handle) ...AfxMessageBox("文件被占用"); return; } CloseHandle...
  • 转自:... C# 判断文件是否被占用的三种方法 using System.IO; using System.Runtime.InteropServices; [DllImport("kernel32.dll")] public static extern IntPtr _lopen(string ...
  • C#实现判断文件是否占用与解除文件占用  收藏 北风其凉   发表于 8个月前 阅读 930 收藏 2 点赞 0 评论 0   最近遇到一个问题,我在实现一个C#客户端的附件...
  • 本文主要解决保存文件时,如何检测该保存文件名对应文件打开时,提示文件已经打开或其他进程占用
  • 网上有同学是这样处理的:如果可以对其进行重命名,则没有被占用,反之,该文件被占用。 示例代码 #include <QtCore/QCoreApplication> #include <QFile> #include <QDebug> int main(int argc,...
  • 本文详细介绍了Delphi判断文件是否正在使用。
  • MessageBox.Show("文件被占用!"); return; } CloseHandle(vHandle); MessageBox.Show("没有被占用!"); } 第二种方法: public static bool IsFileInUse(string fileName) { bool ...
  • 判断文件是否被占用的两种方法

    万次阅读 热门讨论 2017-05-01 09:34:21
    第一种方法:采用文件流方式;打开进行读取操作,看看是否可以;(亲自尝试,完全正确) public static bool IsFileInUse(string fileName) { bool inUse = true; FileStream fs = null; try { fs = new ...
  • 现在有一个需求: 将指定目录下的文件拷贝到另一个位置。 问题: 在拷贝之前必须检查目录下的文件已经关闭,...3.stat文件状态,但是没有查到对应的标志--标识文件是否被占用 求各位大神指点,在线急等!!!
  • 我的2020总结,戳图片,留言抽大奖,今晚开奖 言归正传,开始今天的分享~ 今天有同学问,用os模块的access()能否判断一个文件是否被占用?直觉上,这是行不通的,因为access()返回的是文件的读写属性。为了确认这...
  • C#判断文件是否打开

    热门讨论 2012-12-21 16:05:08
    C#判断文件是否打开,以前自己用的,似乎也是从网上找来的。
  • Java和C++判断文件是否被占用

    千次阅读 2018-12-18 14:51:44
    参考: 很多CSDN上的博客以及stackoverflow上的解决方法 Java 1. RandomAccessFile try { File file = new File("E:\\javaprojects\\file.py");... System.out.println(file.exists());...
  • 先判断一下文件是否已经打开了(占用),如果已经打开了,就别再去打了,可以给出你自己的提示(或根据自己的需要... C# 判断文件是否被占用的可以用下面的方法     1 2 3 4 5 6 7 8 9 10 11 12

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 315,560
精华内容 126,224
关键字:

判断文件被占用