就是用程序实现和unlocker这个软件差不多的功能.查看一个文件是否有进程锁定了它.哪些进程锁定了将所有锁定解除..net本身提供这个功能吗,如果不提供的话,有什么办法可以实现呢

解决方案 »

  1.   

    枚举进程,检查每个进程的模块process.moduls(x).filename是否是这个文件路径
      

  2.   

    枚举进程
    http://www.codeproject.com/KB/system/Win32Process.aspx
      

  3.   


    得到了引用这个文件的进程后,应该怎么样解除这个进程对文件的锁定呢.在不结束进程的情况下??另外我使用System.Diagnostics.Process类的时候,有些进程在列举Modules的时候出现异常,提示拒绝访问.似乎是administrator和system用户的进程正常,network service用户的进程会拒绝访问,这个有没有办法解决呢
      

  4.   


    UnLocker是这样搞地
      

  5.   


    必须用系统的API才可以实现吗?
    .NET本身有没有解锁的功能呢.用API好像比较复杂,而且会不会不安全,弄出蓝屏什么的?
      

  6.   


    .NET当然没有相关功能,甚至是Win32API都没有相关功能,所以作者要自己写驱动程序了,蓝屏是难免的。