On Mon, Apr 6, 2009 at 2:29 AM, santhosh vs <[email protected]> wrote:
> Hi all,
> Now iam developing an application in vista and iam experiencing one strange
> issue.
> The application suddenly refused to remove a file from user's temp folder.
> It was a video file and hence i thought some issue with my code and lost my
> 2 days working on it. Finally i decided to execute an older version which
> worked early, but  found the same issue again.
> The file wont be deleted and it cant even delete through explorer (the steps
> are funny , windows will ask do u want to delete the file , on yes the file
> will disappear and appear agian! no message from windows that the file is
> locked). On using 'unlocker' i found multiple locks from explorer.
> After some research in this issue i found that vista automatically apply
> indexing service.
> I decided to turn it off for the users private folders (that includes temp)
> , i was not sure that this was making the lock.
> But with surprise the issue gone and i can now delete the file!!
> My question is any one experienced this problem before?
> Any idea to delete file in such cases when an indexing is applied to the
> user folder and why vista locks files/folders for indexing ...?

This is nothing new.  It has been going on for a long time with
explorer.exe the command shell.
I am still using XP for my dev box and it is stable except for the
locking crap from explorer.exe.
Unlocker is great for things like this.

I think you came up with your own answer.  The indexing service is
locking the file, though
I think the explorer shell does it just as much.  If I open a dir of
images or videos (I have
indexing turned off) I still get locking issues from explorer.exe.  Sigh.

You can code your app to spawn a thread to wait X secs/mins for the
lock to be released
and to keep trying to delete it.  Or you can use a Win32 API to delete
the files.

A way to delete a locked/in use file with Win32 is with MoveFileEx():
http://msdn.microsoft.com/en-us/library/aa365240(VS.85).aspx

Here are some other ways:
http://stackoverflow.com/questions/1040/how-do-i-delete-a-file-which-is-locked-by-another-process-in-c

Jim

Reply via email to