• Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 685
  • Last Modified:

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
0
gudidi
Asked:
gudidi
1 Solution
 
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
 
John ClaesSenior .Net Consultant & Technical AnalistCommented:
@gudidi

How are you trying to rename the File?
0
Concerto's Cloud Advisory Services

Want to avoid the missteps to gaining all the benefits of the cloud? Learn more about the different assessment options from our Cloud Advisory team.

 
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
 
wdosanjosCommented:
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

Featured Post

Independent Software Vendors: We Want Your Opinion

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

Tackle projects and never again get stuck behind a technical roadblock.
Join Now