There are many utilities which can find these open links between programs and the files they're using (called handles). The eponymously-named "Handle" utility I suggested is one of the simplest - as long as you're OK with basic command prompt operation. All you have to do is to launch a CMD instance as administrator (right-click the CMD icon in the start menu and select "run as administrator"), then change directory to the folder where you unzipped the Handle utility, then type HANDLE followed by the name of the file or directory you're interested in. I pasted an example in my earlier post.
Otherwise, if the command prompt (CMD) is not your favourite thing, there are other utilities such as the hugely powerful Process Explorer (also from Sysinternals), but that's getting to the point where it's not worth the effort unless you're interested in learning about these mechanisms for learning's sake.
The Unlocker utility that Brink suggested can also tell you which process has open handles to a file, but I'd personally recommend not using it to actually "unlock" because that mindlessly deletes the handle - an action which is not always safe, especially if you care about the file in question. Instead, you could use Unlocker to identify the process with the open handle(s) to the file, and then try to close the process the way you'd normally shut down that app. Once the process is no longer running, the handle will be gone too, and the OS will be willing to let the file be manipulated.
Hope this helps.