programming delete folder problem - lock by process

Hi Experts

i am trying to rename a folder from C#.
i get an error:
The process cannot access the file because it is being used by another process.  System.IO.IOException

i can't find out which process lock the folder.
i tried to use OpenedFilesView but it not indicate folder locking.

can someone help?

10x
gudidiAsked:
Who is Participating?
 
wdosanjosConnect With a Mentor Commented:
To find the process, you can use the Sysinternals Handle utility:

     http://technet.microsoft.com/en-us/sysinternals/bb896655

It's a command line utility.  Just type the command below to find the process that's holding the folder or any file in that folder.

      handle myfoldername

The output will be something like this:

C:\>handle c:\temp

Handle v3.45
Copyright (C) 1997-2011 Mark Russinovich
Sysinternals - www.sysinternals.com

TextPad.exe        pid: 5376   type: File           360: C:\Temp
TextPad.exe        pid: 5376   type: File           3E0: C:\Temp

Open in new window

0
 
LeDaoukCommented:
try a third party application to check wich process is locking the folder. like: unblocker
you can kill all process with it that are locking.
0
 
gudidiAuthor Commented:
is there a program that i can use just to know who holds the folder? without kill it?
0
Free Tool: ZipGrep

ZipGrep is a utility that can list and search zip (.war, .ear, .jar, etc) archives for text patterns, without the need to extract the archive's contents.

One of a set of tools we're offering as a way to say thank you for being a part of the community.

 
John ClaesSenior .Net Consultant & Technical AnalistCommented:
@gudidi

How are you trying to rename the File?
0
 
gudidiAuthor Commented:
hi

with this command:

Directory.Move(sSilviPath + "\\Components", sSilviPath + "\\Components_Old");

10x
0
 
David Johnson, CD, MVPOwnerCommented:
not sure if the @ sign is needed File.Move(@"C:\MyFile.txt", @"C:\MyNewerFile.txt");
0
 
gudidiAuthor Commented:
While i stop the process with sleep command i can NOT change manually the folder name.
but i stop the processes i can cahnge it.
so, i would like to know how to find which process locks me?

10x
0
 
John ClaesSenior .Net Consultant & Technical AnalistCommented:
gudidi:

You found the process that is using one File or the directoryInfo  ! Your program is using it!

Are you somewhere creating a file or writing to a file in the Directory? => Close the stream!
Have you created a DirectoryInfo Object for that Folder? ==> Dispose of that object !
Have you created a FileInfo Object for a file in that folder? ==> Dispose of that object !
Are you running your program from that folder? ==> I'm sorry but you can't change the workingfolders name while running the program inside it

regards
poor beggar

0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.