如何查看文件正被别的程序占用?

时间:2022-06-14 12:55:45
比如正在被拷贝,视频文件正在被播放等等,如何能查看出正在被使用?

怎么能获取对这个文件的独立访问的权限?

谢谢了

9 个解决方案

#1


hook createfile和closehandle这两个api进行监控

#2


引用 1 楼 truexf 的回复:
hook createfile和closehandle这两个api进行监控


不能用hook
没有直接一点的获得文件属性的函数或者API么??

#3


linux下有lsof |grep fileName

#4


引用 3 楼 thefirstz 的回复:
linux下有lsof |grep fileName

windows 平台 忘说了……

#5


#6


获取对文件独立访问权限很简单:

Open a file for sharing.

int _sopen( const char *filename, int oflag, int shflag [, int pmode ] );

……
The argument shflag is a constant expression consisting of one of the following manifest constants, defined in SHARE.H.

_SH_DENYRW

Denies read and write access to file

_SH_DENYWR

Denies write access to file

_SH_DENYRD

Denies read access to file

_SH_DENYNO

Permits read and write access

#7


引用 5 楼 zhao4zhong1 的回复:
http://www.nirsoft.net/utils/opened_files_view.html
本人不出,谁与争锋?

还是得用驱动。

#8


但是实际上没必要去检查吧,你只需去访问文件试一试就知道了


stat -c "%a %n" *

#9


谢谢大家 
最后用CreateFile实现的,
第三个参数给NULL, 然后OPEN_EXISTING, 如果能获得句柄就是已经复制完了
回头研究下zhao4zhong1的方法

#1


hook createfile和closehandle这两个api进行监控

#2


引用 1 楼 truexf 的回复:
hook createfile和closehandle这两个api进行监控


不能用hook
没有直接一点的获得文件属性的函数或者API么??

#3


linux下有lsof |grep fileName

#4


引用 3 楼 thefirstz 的回复:
linux下有lsof |grep fileName

windows 平台 忘说了……

#5


#6


获取对文件独立访问权限很简单:

Open a file for sharing.

int _sopen( const char *filename, int oflag, int shflag [, int pmode ] );

……
The argument shflag is a constant expression consisting of one of the following manifest constants, defined in SHARE.H.

_SH_DENYRW

Denies read and write access to file

_SH_DENYWR

Denies write access to file

_SH_DENYRD

Denies read access to file

_SH_DENYNO

Permits read and write access

#7


引用 5 楼 zhao4zhong1 的回复:
http://www.nirsoft.net/utils/opened_files_view.html
本人不出,谁与争锋?

还是得用驱动。

#8


但是实际上没必要去检查吧,你只需去访问文件试一试就知道了


stat -c "%a %n" *

#9


谢谢大家 
最后用CreateFile实现的,
第三个参数给NULL, 然后OPEN_EXISTING, 如果能获得句柄就是已经复制完了
回头研究下zhao4zhong1的方法