C#判断本地文件是否处于打开状态的方法
本文实例讲述了C#判断本地文件是否处于打开状态的方法。分享给大家供大家参考。具体分析如下:
对于应用程序,有时候可能需要判断某个文件是否已经被打开,也就是指是否被某个流连接着。这在对文件的读写比较频繁的程序中尤为重要,因为一个文件同一时刻只能有一个流连接的。下面的代码也许能有所帮助。
public class FileStatus { [DllImport("kernel32.dll")] private static extern IntPtr _lopen(string lpPathName, int iReadWrite); [DllImport("kernel32.dll")] private static extern bool CloseHandle(IntPtr hObject); private const int OF_READWRITE = 2; private const int OF_SHARE_DENY_NONE = 0x40; private static readonly IntPtr HFILE_ERROR = new IntPtr(-1); public static int FileIsOpen(string fileFullName) { if (!File.Exists(fileFullName)) { return -1; } IntPtr handle = _lopen(fileFullName, OF_READWRITE | OF_SHARE_DENY_NONE); if (handle == HFILE_ERROR) { return 1; } CloseHandle(handle); return 0; } }
调用测试:
class Program { static void Main(string[] args) { string testFilePath = AppDomain.CurrentDomain.SetupInformation.ApplicationBase + @"testOpen.txt"; FileStream fs = new FileStream(testFilePath, FileMode.OpenOrCreate, FileAccess.Read); BinaryReader br = new BinaryReader(fs); br.Read(); Console.WriteLine("文件被打开"); int result =FileStatus.FileIsOpen(testFilePath); Console.WriteLine(result); br.Close(); Console.WriteLine("文件被关闭"); result = FileStatus.FileIsOpen(testFilePath); Console.WriteLine(result); Console.ReadLine(); } }
希望本文所述对大家的C#程序设计有所帮助。
相关推荐
-
c# 服务器上传木马监控代码(包含可疑文件)
复制代码 代码如下: using System; using System.IO; using System.Threading; using System.Windows.Forms; using System.Net; namespace TrojanMonitor { public partial class Form1 : Form { public Form1() { InitializeComponent(); } delegate void SetTextCallback(stri
-
C#的FileSystemWatcher用法实例详解
本文实例详述了C#的FileSystemWatcher用法.分享给大家供大家参考.具体用法如下: FileSystemWatcher控件主要功能: 监控指定文件或目录的文件的创建.删除.改动.重命名等活动.可以动态地定义需要监控的文件类型及文件属性改动的类型. 1.常用的几个基本属性: (1) Path :设置要监视的目录的路径. (2) IncludeSubdirectories :设置是否级联监视指定路径中的子目录. (3) Filter :设置筛选字符串,用于确定在目录中监视哪些类型的文件
-
c#实现数据同步的方法(使用文件监控对象filesystemwatcher)
最近在项目中有这么个需求,就是得去实时获取某个在无规律改变的文本文件中的内容.首先想到的是用程序定期去访问这个文件,因为对实时性要求很高,间隔不能超过1S,而且每次获取到文本内容都要去分发给WEB服务器做别的操作,而那个文本的写入有时候会频繁,1秒可能多次,但是也有可能在相当长一段时间内是没有任何写入的. 这样一来如果每秒都去访问文件的话,一个是IO问题,还有就是每次操作都会引起后端一系列程序的反应,文本在长时间内无写入的话,一秒一次的触发一系列徒劳的事情太不可取了. 最终发现了c#中的File
-
c#使用filesystemwatcher实时监控文件目录的添加和删除
首先,我们需要对.net提供的FileSystemWatcher类有所了解.我有些懒,找了MSDN对该类的描述. FileSystemWatcher类侦听文件系统更改通知,并在目录或目录中的文件发生更改时引发事件. 使用 FileSystemWatcher 监视指定目录中的更改.可监视指定目录中的文件或子目录的更改.可以创建一个组件来监视本地计算机.网络驱动器或远程计算机上的文件. 若要监视所有文件中的更改,请将 Filter 属性设置为空字符串 ("") 或使用通配符("*
-
C#使用FileSystemWatcher控件实现的文件监控功能示例
本文实例讲述了C#使用FileSystemWatcher控件实现的文件监控功能.分享给大家供大家参考,具体如下: FileSystemWatcher 可以使用FileSystemWatcher组件监视文件系统,并对文件系统的改变作出反应.通过使用FileSystemWatcher组件,在特定的文件或目录被创建.修改或删除时,可以快速和便捷地启动业务流程. 例如,如果一组用户在合作处理一个存储在服务器共享目录下的文档时,可以使用FileSystemWatcher组件编写应用程序来监视对共享目录的更
-
C#监控文件夹变化的方法
本文实例讲述了C#监控文件夹变化的方法.分享给大家供大家参考.具体实现方法如下: 当需要监控某一文件,FileSystemWatcher类提供了Created, Deleted,Rename等事件. 就拿FileSystemWatcher的Created事件来说,该事件类型是FileSystemEventHandler. 复制代码 代码如下: public delgate void FileSystemEventHandler(Object sender, FileSystemEventArgs
-
C#采用FileSystemWatcher实现监视磁盘文件变更的方法
本文实例讲述了C#采用FileSystemWatcher实现监视磁盘文件变更的方法.分享给大家供大家参考.具体实现方法如下: 简化需求:有一个简化了的需求是这样的:有一个拍照程序在运行,一旦抓拍之后则将图片文件存储至某目录,然后图片要上传至远程服务器并update数据库. 原需求:原先的需求是这样的:有一台PDA扫码枪,一个IP照相机放置在下线区传送带上方.当PDA扫描箱子上的条码,触发相机拍照,将图片流传至远端服务器,找到对应的条码,将图片存储并更新数据库. 然而我不知道PDA扫描的瞬间如何与
-
c#使用filesystemwatcher监视文件系统的变化
复制代码 代码如下: #region 监视文件夹的变化 FileSystemWatcher watcher = new FileSystemWatcher(); watcher.Path = "f:\\"; watcher.NotifyFilter =//被监控的方面 NotifyFilters.LastWrite | NotifyFilters.FileName
-
c# 共享状态的文件读写实现代码
复制代码 代码如下: using System.IO; using System.Text; namespace LucienBao.Commons { public static class FileHelper { public static string ShareRead(string file, Encoding encoding) { string content = string.Empty; FileStream fs = new FileStream(file, FileMod
-
C#判断本地文件是否处于打开状态的方法
本文实例讲述了C#判断本地文件是否处于打开状态的方法.分享给大家供大家参考.具体分析如下: 对于应用程序,有时候可能需要判断某个文件是否已经被打开,也就是指是否被某个流连接着.这在对文件的读写比较频繁的程序中尤为重要,因为一个文件同一时刻只能有一个流连接的.下面的代码也许能有所帮助. public class FileStatus { [DllImport("kernel32.dll")] private static extern IntPtr _lopen(string lpPat
-
C#中判断本地系统的网络连接状态的方法
函数InternetGetConnectedState返回本地系统的网络连接状态. 语法: BOOL InternetGetConnectedState( __out LPDWORD lpdwFlags, __in DWORD dwReserved ); 参数: lpdwFlags[out] 指向一个变量,该变量接收连接描述内容.该参数在函数返回FLASE时仍可以返回一个有效的标记.该参数可以为下列值的一个或多个. 值 含义 INTERNET_CONNECTION_CONFIGURED0x40
-
利用xcopy命令实现本地文件复制到远程服务器的方法
A.net use \\IP地址 密码/user:****** B.xcopy 文件 \\IP地址\ 批处理文件为backup.bat,其代码如下: ========================================================================================= net use \\192.168.1.198\ipc$ Zqf198703 /user:royalpeak xcopy g:\backup\*.* \\192.168.
-
bootstrap的3级菜单样式,支持母版页保留打开状态实现方法
razor视图的,母版页 依旧不多说,直接上代码 <ul class="sidebar-menu"> @for (int i = 0; i < mList.Count; i++) { if (mList[i].FatherID == 0) { mCList = GetChild(mList[i].ModuleId, mList);<!--二级菜单的集合--> <li class="treeview"><a href=&
-
js实现浏览本地文件并显示扩展名的方法
本文实例讲述了js实现浏览本地文件并显示扩展名的方法.分享给大家供大家参考.具体如下: 这里用文件域浏览指定文件,可以显示该文件的扩展名,想想它可以用在哪里?可以用在文件上传系统上,用来判断上传的文件类型是否是合法类型,不是则不允许上传.再看看代码,不足10行,解决问题,正在学习javaScript的朋友,你也可参考参考哦. 运行效果截图如下: 在线演示地址如下: http://demo.jb51.net/js/2015/js-view-nav-file-ext-codes/ 具体代码如下: <
-
Python读取本地文件并解析网页元素的方法
如下所示: from bs4 import BeautifulSoup path = './web/new_index.html' with open(path, 'r') as f: Soup = BeautifulSoup(f.read(), 'lxml') titles = Soup.select('ul > li > div.article-info > h3 > a') for title in titles: print(title.text) 输出: Sardinia
-
Windows 文件类型与打开方式定义方法
assoc:根据文件扩展名定义文件类型.可以用此命令显示或修改文件扩展名关联 例如: .bat=batfile .xls=Excel.Sheet.8 ftype:根据文件类型定义打开方式.可以用此命令显示或修改用在文件扩展名关联中的文件类型 例如: batfile="%1" %* Excel.Sheet.8="C:\Program Files\Microsoft Office\Office\EXCEL.EXE" /e 说明: Ftype的基本使用格式为:Ftype
-
IE及IE6浏览器中判断JS文件加载成功失败的方法
浏览器的文件加载实际上是有非常纠结的兼容问题的.最近看到@lifesinger做了一个具体的总结.这里比较麻烦的是IE6~8不区分加载成功或失败,都走一个回调.在网上看了一种解决方案是,在加载文件的最后置一个全局变量或改变标签的属性来区分,这样成功与否就通过这个标志位判断.但显然不太完美,还要改加载文件. 后来尝试另一种思路,先创建一个vbscript,src置成一个JS文件,如这个文件加载正常,肯定会报错否则不会有反应.这样如果window.onerror捕获到错误了,说明文件有效,再正常加载
-
PHP用FTP类上传文件视频等的简单实现方法
文件1:ftp.php <?php /** * 仿写CodeIgniter的FTP类 * FTP基本操作: * 1) 登陆; connect * 2) 当前目录文件列表; filelist * 3) 目录改变; chgdir * 4) 重命名/移动; rename * 5) 创建文件夹; mkdir * 6) 删除; delete_dir/delete_file * 7) 上传; upload * 8) 下载 download * * @author quanshuidingdang */ cl
-
黑客利用RM在IE上强行打开本地文件
星期三,安全公司Secunia披露,在Real Player和IE中新发现了一个安全漏洞,黑客可以借用RealMedia (.rm)文件在安装有RealPlayer的浏览器上打开本地文件. 这个漏洞存在于版本号为10.5 (build 6.0.12.1056)的RealPlayer,它含有Plus和Basic版本,适用于Windows, Mac OS X, Linux, Unix, Palm OS以及Symbian OS上.然而,过往版本也不排除受其感染的可能性. Secunia指出,恶意用户可
随机推荐
- Linux有限状态机FSM的理解与实现
- jQuery使用fadein方法实现渐出效果实例
- jQuery插件FusionWidgets实现的AngularGauge图效果示例【附demo源码】
- angular route中使用resolve在uglify压缩后问题解决
- js数组操作常用方法
- 正则表达式\d元字符(相对于数字0-9)
- PHP导出Excel实例讲解
- C语言中的强符号和弱符号介绍
- php 常用类整理
- 详解用node搭建简单的静态资源管理器
- 深入理解JavaScript中Ajax
- bootstrap table实现点击翻页功能 可记录上下页选中的行
- 详谈nodejs异步编程
- 数据库中union 与union all 的区别
- Sqlserver 常用日期时间函数
- 独辟蹊径:实现Linux下的局域网远程接入
- 为Android应用增加渠道信息 自动化不同渠道的打包过程的使用详解
- JS+CSS实现下拉刷新/上拉加载插件
- PHP高级对象构建 工厂模式的使用
- Android地图控件之多地图展示