C# 如何判断指定文件是否正被其它程序使用

起因:项目中发现在操作文件时,系统经常抛出异常,表示文件正被其它程序占用。

需求:为了事先判断,以确认指定的文件是否正被其它程序使用,需要方法进行判断。

思路:在程序中,我们经常遇到读写文件的情况,而这个时候该文件可能被其他程序占用,那么怎么判断文件是否被占用,从而友好的提示用户呢?

这里提供一个简单的办法,他就是尝试着去读该文件,如果失败,则说明文件被占用

实现:

       /// <summary>
/// 返回指示文件是否已被其它程序使用的布尔值
/// </summary>
/// <param name="fileFullName">文件的完全限定名,例如:“C:\MyFile.txt”。</param>
/// <returns>如果文件已被其它程序使用,则为 true;否则为 false。</returns>
public static Boolean FileIsUsed(String fileFullName)
{
Boolean result = false;
//判断文件是否存在,如果不存在,直接返回 false
if (!System.IO.File.Exists(fileFullName))
{
result = false;
}//end: 如果文件不存在的处理逻辑
else
{//如果文件存在,则继续判断文件是否已被其它程序使用
//逻辑:尝试执行打开文件的操作,如果文件已经被其它程序使用,则打开失败,抛出异常,根据此类异常可以判断文件是否已被其它程序使用。
System.IO.FileStream fileStream = null;
try
{
fileStream = System.IO.File.Open(fileFullName, System.IO.FileMode.Open, System.IO.FileAccess.ReadWrite,System.IO.FileShare.None);
result = false;
}
catch (System.IO.IOException ioEx)
{
result = true;
}
catch (System.Exception ex)
{
result = true;
}
finally
{
if (fileStream != null)
{
fileStream.Close();
}
}
}//end: 如果文件存在的处理逻辑
//返回指示文件是否已被其它程序使用的值
return result;
}//end method FileIsUsed

C# 如何判断指定文件是否正被其它程序使用的更多相关文章

  1. win7 创建vhd提示“找不到指定文件的虚拟磁盘支持提供程序”解决方法

    本文参照:https://itbbs.pconline.com.cn/diy/16509116_2.html 14楼中"坚持不放弃"用户的答案得到解决 问题复现: 1.window ...

  2. 【转】c# 判断指定文件是否存在

    private void button2_Click(object sender, EventArgs e) { if (File.Exists(@"E:\exists.txt") ...

  3. FindExecutable:查找与一个指定文件关联在一起的程序的文件名

    百度百科:http://baike.baidu.com/view/1285880.htm ------------------------------------------------------- ...

  4. Java 遍历文件夹里面的全部文件、指定文件

    Java 手册 listFiles public File[] listFiles(FileFilter filter) 返回抽象路径名数组,这些路径名表示此抽象路径名表示的目录中满足指定过滤器的文件 ...

  5. 如何解决Visual Studio2010 编译时提示系统找不到指定文件问题

    前一段时间,开始使用vs2010编写程序,可是在编译的时候总是报错,提示系统找不到指定文件,导致无法正常运行程序,花了好久时间终于找到原因解决,是因为常规的输出目录 要与链接的常规的输出文件要相对应. ...

  6. Python 判断文件是否存在,不存在则将名称写入指定文件

    import os filename = '15464657761111111.pdf' pathDir = 'F:/tqcs/sr' # 判断文件是否存在 if os.path.exists(pat ...

  7. php清理当前目录下的指定文件和空目录(源码),建议服务器端执行

    <?php /** * @desc 解析当前目录并递归删除目录下的指定文件 * @author mengdj<mengdj@outlook.com> 2014.10.02 1530 ...

  8. Java中查找文件并且打印输出指定文件下面的子目录

    package com.immoc; import java.io.File; import java.io.IOException; public class FileUtile { //列出fil ...

  9. IO流的练习3 —— 复制多级文件夹下的指定文件并改名

    需求:复制指定目录下的指定文件,并修改后缀名. 指定的文件是:.java文件. 指定的后缀名是:.jad 数据源所在文件夹:C:\Users\Administrator\Desktop\记录 目的地所 ...

随机推荐

  1. HLS协议解析

    1. 综述 HLS(HTTP Live Streaming) 把整个流分成一个个小的基于 HTTP 的文件来下载,每次只下载一些.HLS 协议由三部分组成:HTTP.M3U8.TS.这三部分中,HTT ...

  2. CSS中盒子模型

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  3. VSCODE开发VUE.JS前端插件

    VUE前端插件.转载自:https://www.cnblogs.com/karthuslorin/p/8577224.html vscode是微软开发的的一款代码编辑器,就如官网上说的一样,vscod ...

  4. Python获取两个文件的交集、并集、差集

    题记:朋友在处理数据时,需要解决这方面的问题,所以利用她给的代码,自己重新梳理了下,并成功运行. 代码如下: # coding:utf-8 s1 = set(open(r'C:\\Users\\yan ...

  5. win + T 快捷键

    和 alt + tab 不同,win + T会在 在任务栏间的程序间进行switch

  6. 五十四:WTForms表单验证之自定义表单验证器

    如果想要对表单中的某个字段进行自定义验证,则需要对这个字段进行单独的验证1.定义一个方法,命名规则为:validate_字段名(self, filed)2.在方法中,使用filed.data获取字段的 ...

  7. python爬虫播放mp3

    我不明白这里出了什么问题.每次我试图在pyglet播放声音,我得到以下错误:WAVEFormatException: AVbin is required to decode compressed me ...

  8. C# 实现opc ua服务器的远程连接(转)

    原文转自:https://www.cnblogs.com/dathlin/p/7724834.html OPC UA简介 OPC是应用于工业通信的,在windows环境的下一种通讯技术,原有的通信技术 ...

  9. 继承以及Super

    一个小小的总结,主要关注以下三个问题:ES5的继承方式,ES5的继承与ES6的继承的区别,ES6的super的几种使用方式以及其中this的指向. From http://supermaryy.com ...

  10. 重学Python - Day 07 - python基础 -> linux命令行学习 -- 常用命令 一

    常用命令和使用方法如下: man man 命令 #可以查询命令的用法 cat 和 tac cat是正序显示文件内容 tac是倒叙显示文件内容 sort 对文件内容排序 uniq 忽略文件中重复行 hi ...