C# winform中判断文件是否处于打开状态

本文介绍了如何在C# Winform应用中判断文件是否处于打开状态。由于C#自身难以直接判断,作者转向使用Windows API,但未能成功。最终,通过检查使用`System.Diagnostics.Process.Start()`打开文件后相关进程是否已退出,实现了文件打开状态的判断。这种方法能在尝试再次打开已打开文件时给出错误提示。
摘要由CSDN通过智能技术生成

最近做一个课题,要求winform客户端能保存接收到的实验数据到文件(如.txt文件),并能打开保存好了的实验数据文档,当数据文件已经被打开,要提示文件已被打开,也就是如何判断文件是否处于打开状态,然后给出相应提示。通过查找资料发现C#本身是很难判断一个文件是否被打开的,相关资料给出需用到windowsAPI来实现,这种方法按理说是可以的,但也许是我没有完全领会到相关函数的意义和返回值,致使不能判断文件已经被打开,相关的程序和问题给出如下:

public class FileStaues
    {
        [DllImport("kernel32.dll")]
        private static extern IntPtr _lopen(string lpPathName, int iReadWrite);//IntPtr相当于long类型

        [DllImport("kernel32.dll")]
        private static extern bool CloseHandle(IntPtr hObject);

        private const int OF_WRITE = 2;

        private const int OF_SHARE_DENY_NONE = 0x40;

        private static readonly IntPtr HFILE_ERROR = new IntPtr(964);

        public static int FileIsOpen(string fileFullName)
        {
            if (!
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值