Home > OS >  How to stop from deleting a file/workbook in MS excel when it is already open?
How to stop from deleting a file/workbook in MS excel when it is already open?

Time:09-21

We have designed Microsoft Addins for MS Excel and Word 2019 written in VB.net. There we have designed a tab ,on clicking this tab, we open a Task Pane . On loading this task pane ,we execute a code to launch another Excel File/Word file.

So when I delete a file in MS Word that is already open it shows an exception The file 'Filename' already exists. Given below is the code snippet I am using to delete an already existing open file named processFile

My.Computer.FileSystem.DeleteFile(processFile)

Now when I run the same code snippet in MS Excel it does not show this exception and deletes the file.

I am not able to understand this behavior. Kindly suggest if anyone has understanding on it

Here are some more information about on which environment I'm working :

Operating System : Microsoft Windows 10 Pro

Code Editor : Visual Studio 2019

Technology : Vb.net(.Net Framework 4.8)

MS Office Version : 2019(32 bit) : Microsoft Windows 10 Pro

CodePudding user response:

The IOException should be thrown if the file is in use. You need to close any editors first and then delete files.

CodePudding user response:

Check if the file is open. I have a code below that may help.

As import sfile use the fullpath with filename. (eg. "C:\Windows\test.txt") returns True when file it's open and false when it isn't.

Yu will need "Imports System.IO"

 Public Function IsFileInUse(sFile As String) As Boolean
        Try
            If File.Exists(sFile) Then
                Using f As New IO.FileStream(sFile, FileMode.Open, FileAccess.ReadWrite, FileShare.None)
                End Using
            End If
        Catch Ex As Exception
            Return True
        End Try
        Return False
    End Function
  • Related