-
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#判断文件是否正在被占用(使用)
2021-03-17 15:40:17摘要: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 判断文件是否被占用.rar
2019-07-10 18:20:00Delphi 判断文件是否被占用,这个在删除的时候,可以添加上此功能,因为文件占用的话,用户删除时会出错,用本代码可以先判断一下文件是否被占用,用弹窗方式告诉用户是否可以删除,如果没有被占用,则程序进行下... -
C# 判断文件是否被占用
2022-06-13 14:49:56C# 判断文件是否被占用 public bool IsOccupied(string fileFullNmae) -
Java检查文件是否可写(被占用)的一个技巧
2021-02-12 19:23:50思想:文件打开时,给它建立一个临时文件,其他操作要打开这个文件,先检测临时文件在不,在的话就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++判断目标文件是否被独占(附源码)
2022-03-23 22:00:48判断目标文件是否被独占,提供了相关的封装函数,可以直接拿去使用。VC++常用功能开发汇总(专栏文章列表,欢迎订阅,持续更新...)
https://blog.csdn.net/chenlycly/article/details/124272585 在IM软件中发起文件发送时,如果要发送的是某word文件,并且该word文件被office打开,则会提示文件正在被占用无法发送,如下所示:
那文件被占用到底是如何判断出来的呢&#x
-
查看哪个文件正在被哪个进程打开,占用中
2021-11-17 19:13:32查看哪个文件正在被哪个exe打开,占用中 -
java判断一个文件是否正在被其他程序使用(调用)?
2021-02-12 23:19:45可以试一下以下两个程序:先运行这个,让一个文件处于使用状态: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#实现判断文件是否被占用与解除文件占用
2017-06-21 16:45:12C#实现判断文件是否被占用与解除文件占用 收藏 北风其凉 发表于 8个月前 阅读 915 收藏 2 点赞 0 评论 0 https://my.oschina.net/Tsybius2014/blog/780750 ... -
Python程序判断文件是否被打开被占用
2022-04-14 22:52:09if __name__ == '__main__': test() 详解 检查文件是否能使用写的方式打开 使用winapi的CreateFile对文件进行操作,如果不报异常的话即可认为是可以打开的 注意如果文件不存在,则也返回True 注意如果文件不可写等... -
Qt判断文件是否被占用,是否可修改
2020-11-24 15:39:21这2个类都没有明确给出API如何判断一个文件是否被占用,是否能被修改、删除等。 网上也没有人发在Qt下如何实现的。 由于自己需要使用这个功能,没办法,只有自己想办法。想来想去,也没有好主意,只能来硬的。 实现... -
如何通过python检查文件是否被占用
2021-02-10 12:10:12一、思路1、通过window的aip函数CreateFile()函数获得文件句柄2、检测在获得句柄的时候是否报错“文件被占用无法打开”3、如果没有报错返回文件句柄,说明文件没有被占用;如果报错说明文件被占用二、需importimport... -
C++ /MFC 判断文件是否被占用
2019-11-02 08:54:25HANDLE Handle; Handle = CreateFile(szPath, GENERIC_READ,0,NULL,OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,NULL); if(INVALID_HANDLE_VALUE == Handle) ...AfxMessageBox("文件被占用"); return; } CloseHandle... -
使用c#检测文件正在被那个进程占用 判断文件是否被占用的两种方法
2019-01-07 18:04:46转自:... C# 判断文件是否被占用的三种方法 using System.IO; using System.Runtime.InteropServices; [DllImport("kernel32.dll")] public static extern IntPtr _lopen(string ... -
实现判断文件是否被占用与解除文件占用
2017-06-23 17:50:02C#实现判断文件是否被占用与解除文件占用 收藏 北风其凉 发表于 8个月前 阅读 930 收藏 2 点赞 0 评论 0 最近遇到一个问题,我在实现一个C#客户端的附件... -
VB.NET检测文件是否已经打开或被其他进程占用
2020-12-14 21:59:41本文主要解决保存文件时,如何检测该保存文件名对应文件打开时,提示文件已经打开或被其他进程占用。 -
QT 如何判断一个文件是否被其他程序占用
2021-09-10 15:04:10网上有同学是这样处理的:如果可以对其进行重命名,则没有被占用,反之,该文件被占用。 示例代码 #include <QtCore/QCoreApplication> #include <QFile> #include <QDebug> int main(int argc,... -
Delphi判断文件是否正在被使用
2014-12-17 12:31:09本文详细介绍了Delphi判断文件是否正在被使用。 -
C# 判断文件是否被占用的两种方法
2013-09-04 14:40:21MessageBox.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 ... -
linux下如何判断文件被占用
2016-01-20 17:16:26现在有一个需求: 将指定目录下的文件拷贝到另一个位置。 问题: 在拷贝之前必须检查目录下的文件已经被关闭,...3.stat文件状态,但是没有查到对应的标志--标识文件是否被占用 求各位大神指点,在线急等!!! -
如何用Python判断一个文件是否被占用?
2021-01-08 12:03:00我的2020总结,戳图片,留言抽大奖,今晚开奖 言归正传,开始今天的分享~ 今天有同学问,用os模块的access()能否判断一个文件是否被占用?直觉上,这是行不通的,因为access()返回的是文件的读写属性。为了确认这... -
C#判断文件是否被打开
2012-12-21 16:05:08C#判断文件是否被打开,以前自己用的,似乎也是从网上找来的。 -
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# 判断文件是否被占用的可以用下面的方法
2016-09-23 10:25:57先判断一下文件是否已经被打开了(占用),如果已经被打开了,就别再去打了,可以给出你自己的提示(或根据自己的需要... C# 判断文件是否被占用的可以用下面的方法 1 2 3 4 5 6 7 8 9 10 11 12