C# _lopen判断文件是否正在被使用
来源:互联网 发布:安娜baby淘宝店 编辑:程序博客网 时间:2024/06/16 03:51
今天很无语,要解决一个问题,Silverlight中无法对用户打开的文件进行判断,是否打开,沙箱模式运作,出于安全性考虑,是无法获得
本地文件的绝对路径,无法调用API来判断实现这功能,最后还是用Trycatch来解决。
C#能够调用的API都能从以下网站查到:
API查询网站:http://www.webtropy.com/articles/Win32-API-DllImport-art9.asp
还是写下C# 调用系统API来实现文件判断效果:
1.命名空间:using System.Runtime.InteropServices
2. API函数 _lopen(string pathfile,int ireadwriter)
1 /// <summary> 2 /// Description of UseAPI. 3 /// </summary> 4 public class UseAPI 5 { 6 7 public UseAPI() 8 { 9 }10 11 private const int OF_READWRITE = 2;12 private const int OF_SHARE_DENY_NONE = 0x40;13 private static readonly IntPtr HFILE_ERROR = new IntPtr(-1);14 15 16 /// <summary>17 /// 判断文件是否打开18 /// </summary>19 /// <param name="lpPathName">文件名称</param>20 /// <param name="iReadWrite"></param>21 /// <returns></returns>22 [DllImport("kernel32.dll")]23 private static extern IntPtr _lopen(string lpPathName, int iReadWrite);24 25 /// <summary>26 /// 关闭文件句柄27 /// </summary>28 /// <param name="hObject"></param>29 /// <returns></returns>30 [DllImport("kernel32.dll")]31 private static extern bool CloseHandle(IntPtr hObject);32 33 /// <summary>34 /// 文件名称35 /// </summary>36 /// <param name="filename"></param>37 /// <returns></returns>38 public static string IsOpen(string filename)39 {40 IntPtr vHandle = _lopen(filename, OF_READWRITE | OF_SHARE_DENY_NONE);41 if (vHandle == HFILE_ERROR)42 {43 CloseHandle(vHandle);44 return "文件被占用!";45 }46 else47 return "没有被占用!";48 49 //CloseHandle(vHandle);50 }51 }
阅读全文
0 0
- C# _lopen判断文件是否正在被使用
- C# 判断文件是否正在被使用
- C# 判断文件是否正在被使用
- C# 判断一个文件是否正在被使用。
- c# 判断一个文件是否正在被使用
- 判断一个文件是否正在被使用
- 判断文件是否正在被使用
- Delphi判断文件是否正在被使用
- Delphi判断文件是否正在被使用
- 判断一个文件是否正在被使用
- 判断一个文件是否正在被使用
- Delphi判断文件是否正在被使用
- Delphi判断文件是否正在被使用
- Delphi判断文件是否正在被使用
- Delphi判断文件是否正在被使用
- 判断文件是否正在使用
- linux下判断一个文件是否正在被使用
- C# 检查文件是否正在使用
- Oracle中dual表的用途介绍
- ANSI C标准库: <time.h>下函数讲解
- Chrome标签整理
- java.sql.SQLException: 无效的列索引
- iOS11/iPhoneX相关适配问题
- C# _lopen判断文件是否正在被使用
- 初赛复习5
- 整数分解为2的幂(递归)C语言
- Tomcat配置Web默认页面
- 编程_Cortex-M3启动代码分析笔记
- jdk源码解析——jvm优化之Tomcat调优
- python学习第一天
- hibernate3框架搭建
- ids for this class must be manually assigned before calling save(): com