100分请问关于文件操作问题,急!马上结贴

Paris_Luo 2007-07-10 11:08:45
如何检查某个文件是否正被其他程序打开(open)?
...全文
375 25 打赏 收藏 转发到动态 举报
写回复
用AI写文章
25 条回复
切换为时间正序
请发表友善的回复…
发表回复
juicee 2007-07-10
  • 打赏
  • 举报
回复
尝试删除,哈哈,开玩笑- -。
星羽 2007-07-10
  • 打赏
  • 举报
回复
在CreateFile中不要共享读写地打开文件,根据返回值判断,

还可以试
BOOL GetStatus(CFileStatus&rStatus)const;
Static BOOL PASCAL GetStatus(LPCSTRlpszFileName,CFileStatus&rStatus);
返回值如果指定文件的状态信息成功获取,则为TRUE,否则为FALSE。
我啃 2007-07-10
  • 打赏
  • 举报
回复
http://topic.csdn.net/t/20051007/08/4309891.html
这个有用吗?
Paris_Luo 2007-07-10
  • 打赏
  • 举报
回复
问题就在这里,一个文件,被别的程序以共享模式(ShareDenyNone)打开了,我的程序想判断是否有另外一个程序也同时打开了这个文件。
我啃 2007-07-10
  • 打赏
  • 举报
回复
如果用共享模式open文件当然可以多个open,只能知道共享打开中被修改了(例如ultraedit中打开文件如果被外部修改了会提醒)
Paris_Luo 2007-07-10
  • 打赏
  • 举报
回复
问题仍未解决,贴子依然有效,期待dx指教。。。。。。。。。
Paris_Luo 2007-07-10
  • 打赏
  • 举报
回复
各位dx能否认真一点,
CFile::ShareDenyNone 不禁止其它进程读或写访问,打开文件。如果文件已被其它进程以兼容模式打开,则Create失败。
CFile::ShareDenyNone??至少也要CFile::ShareExclusive才能让人信服一点吧?
可惜的是,即使用CFile::ShareExclusive也可以open已经open过的文件。


IsOpen(filename)
类似的API好像没见过
gunsand 2007-07-10
  • 打赏
  • 举报
回复
IsOpen(filename)
应该有这样的函数,无论LINUX或者WINDOWS
然后如果真的没有,就LOCK被.. 不过我估计肯定可以直接通过函数判断.
我啃 2007-07-10
  • 打赏
  • 举报
回复
里面有一个:

CFile::ShareDenyNone 不禁止其它进程读或写访问,打开文件。如果文件已被其它进程以兼容模式打开,则Create失败。
我啃 2007-07-10
  • 打赏
  • 举报
回复
基本:
http://www.7dspace.com/doc/24/0603/20063707035023567.htm
believefym 2007-07-10
  • 打赏
  • 举报
回复
http://topic.csdn.net/t/20030804/05/2104986.html
我啃 2007-07-10
  • 打赏
  • 举报
回复
那么就只能用API函数了~
Paris_Luo 2007-07-10
  • 打赏
  • 举报
回复
Kenmark(fenix)
简单方法:
以独占方式打开目录下的所有文件,如果打开某个文件失败,则是这个文件锁定的。

->
这样是不行的,我试过。独占方式打开只会影响之后的操作。
文件在被其他程序开着的时候,一样可以open,只是在以独占方式open之后,别的程序就无法open了。
  • 打赏
  • 举报
回复
独占方式打开,不允许共享读写.如果打开失败就表示其他程序在使用
我啃 2007-07-10
  • 打赏
  • 举报
回复
简单方法:
以独占方式打开目录下的所有文件,如果打开某个文件失败,则是这个文件锁定的。
SoftBomb 2007-07-10
  • 打赏
  • 举报
回复
要依赖与OS实现,估计要用系统api来判断
taodm 2007-07-10
  • 打赏
  • 举报
回复
这个不是C++能解决的,去windows/linux编程版问吧
我啃 2007-07-10
  • 打赏
  • 举报
回复
http://book.hackbase.com/ask28/how196339.htm
Paris_Luo 2007-07-10
  • 打赏
  • 举报
回复
散分了!
Paris_Luo 2007-07-10
  • 打赏
  • 举报
回复
问题还是没有解决,不过还是要感谢大家的支持
散分!
加载更多回复(5)

64,651

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧