Rss & SiteMap

Foxtable(狐表) http://www.foxtable.com

新一代数据库软件,完美融合Access、Foxpro、Excel、vb.net之优势,人人都能掌握的快速软件开发工具!
共10 条记录, 每页显示 10 条, 页签: [1]
[浏览完整版]

标题:利用FileSys.DeleteFile删除文件时,怎么提前判断文件是否处于打开状态?

1楼
cpayinyuan 发表于:2009/8/8 10:34:00
    如题.用FileSys.DeleteFile删除文件时,如果文件处于打开状态,代码执行会出错,删除失败,并连续出现两个FoxTable的错误提示,这样很不好!
    我想请教一下,怎么在删除文件前先判断文件是否处于打开状态,然后根据打开状态决定是否删除.例如:如果文件处于关闭状态,则删除文件,如果处于打开状态,则不删除文件,弹出对话框"请先把XX文件关闭后才能删除!"

   或者简单一点,用用FileSys.DeleteFile删除文件时,当发现文件处于打开状态时,自动忽略(即不删除),别让系统出错,也不出现错误提示.这样也能基本解决问题.
[此贴子已经被作者于2009-8-8 12:39:39编辑过]
2楼
cpayinyuan 发表于:2009/8/8 14:16:00
以下是引用hnaysx在2009-8-8 13:26:00的发言:
        Try
            FileSys.DeleteFile("c:\data\fox2.jpg", 3, 3)
        Catch ex As System.IO.IOException
            MsgBox("删除失败,请先解锁!")
        End Try

   谢谢!

   但即使这样,在删除处于打开状态下的文件时,仍然会弹出一个Foxtable的对话框,名字叫"删除文件或文件夹时出错"(内容是无法删除XX文件,文件被下列程序使用!),然后才会弹出自己写的这个对话框(即删除失败,请先解锁!),感觉很不顺!请教一下,能否禁用狐表本身的那个错误提示?或者提前检测一下某个文件是否处于打开状态?

3楼
cpayinyuan 发表于:2009/8/8 14:39:00
以下是引用hnaysx在2009-8-8 14:19:00的发言:

我感觉这个对话框很好啊 都提示你什么程序在用了

     这个对话框是挺好,绝大多数情况下都很有用.但在某些特殊情况下,我不需要有这个提示.例如,我在系统退出时,把项目中使用的一些临时文件自动删除掉,如果正在使用,则忽略.这样的情况下,出现对话框是很别扭的!

4楼
cpayinyuan 发表于:2009/8/8 18:15:00

请贺老师帮忙解决一下。

5楼
狐狸爸爸 发表于:2009/8/8 18:16:00
不要提示就这样:

Try
    FileSys.DeleteFile("c:\data\fox2.jpg", 3, 3)
Catch ex As System.IO.IOException
End Try
6楼
cpayinyuan 发表于:2009/8/9 10:41:00
以下是引用狐狸爸爸在2009-8-8 18:16:00的发言:
不要提示就这样:

Try
    FileSys.DeleteFile("c:\data\fox2.jpg", 3, 3)
Catch ex As System.IO.IOException
End Try

   即使这样,在删除处于打开状态下的文件时,仍然会弹出一个Foxtable的对话框,名字叫"删除文件或文件夹时出错"(内容是无法删除XX文件,文件被下列程序使用!)  感觉很不顺!
   请教一下,能否禁用狐表本身的那个错误提示?或者提前检测一下某个文件是否处于打开状态?

[此贴子已经被作者于2009-8-9 10:41:12编辑过]
7楼
cpayinyuan 发表于:2009/8/9 19:39:00
  难道这个小问题没有办法解决?
8楼
狐狸爸爸 发表于:2009/8/10 7:57:00

标准代码:

Try
    Dim aa As New System.IO.FileStream("c:\book1.xls", IO.FileMode.Open, IO.FileAccess.Read, IO.FileShare.None)
    aa.Dispose()
    messagebox.show("没有人打开")
Catch ex As Exception
    messagebox.show("有人打开")
End Try

9楼
yangming 发表于:2009/8/10 12:15:00
以下是引用狐狸爸爸在2009-8-10 7:57:00的发言:

标准代码:

Try
    Dim aa As New System.IO.FileStream("c:\book1.xls", IO.FileMode.Open, IO.FileAccess.Read, IO.FileShare.None)
    aa.Dispose()
    messagebox.show("没有人打开")
Catch ex As Exception
    messagebox.show("有人打开")
End Try

收藏,慢慢研究!

10楼
cpayinyuan 发表于:2009/8/10 12:48:00

谢谢!我先试一下!

共10 条记录, 每页显示 10 条, 页签: [1]

Copyright © 2000 - 2018 foxtable.com Tel: 4000-810-820 粤ICP备11091905号

Powered By Dvbbs Version 8.3.0
Processed in .04297 s, 2 queries.