2011-03-23 9 views
1

C#을 사용하여 파일을 동적으로 삭제하는 동안 다른 프로세스에서 이 사용 되었기 때문에 삭제할 수 없었지만이 파일을 사용하고있는 다른 프로세스가 없습니다.C에서 동적으로 파일을 삭제하는 방법은 무엇입니까?

foreach (string file in filess) 
    { 
    // FileInfo fi2 = new FileInfo(file); 
    // fi2.Delete(); 
     File.Delete(file); 
    // ii = 0; 
    } 
+5

아마도 자신의 프로세스에서 사용됩니까? 예를 들어, 당신은 그것에'FileStream'을 사용하고 그것을 버리는 것을 잊었습니다. – CodesInChaos

+1

fi2 개체를 닫았습니까? –

+0

편집기에서 열어 보셨습니까? – kenny

답변

0

당신은 항상 당신이 당신이 그것을 연 스트림을 닫습니다 확인해야합니다 :

using (FileStream stream = File.Create("C:\\1.txt")) 
{ 
    // your code goes here 

}// the object will be closed here 

using 블록을 넣어하지 않는 경우가 많은 버그가 발생할 수 있기 때문에

당신이 stream.Close();

사용하여 수동으로 닫힌 경우에도
5

일반적으로 다른 프로세스에서 사용한다고 말하면 사실이라고 간주해야합니다. 이 도구로 이것을 확인할 수 있는지 확인하려면 Process Explorer
잠금 파일이 무엇인지 알려줍니다.

+0

고맙습니다 ... 사용 된 파일은 내 응용 프로그램에 있습니다. – araf

0

파일을 사용중인 경우 삭제할 수 없으므로 try catch 절에서 삭제하십시오. 해당 파일을 사용하는 프로세스가 자신의 응용 프로그램인지 아니면 다른 프로세스인지 판단 할 것입니다. 이를 위해 Unlocker을 사용할 수 있습니다.

+0

감사합니다 ... 해당 파일을 사용하는 프로세스는 내 응용 프로그램에 있습니다. – araf

+0

그런 다음 더 많은 코드를 제공하거나 코드를 분석하고 이전 시점에 해당 파일에 액세스 할 위치를 확인한 다음 사용 후 파일을 올바르게 닫았는지 확인하십시오. – CloudyMarble

+0

내가 접근 할 수있는 파일을 열어 놓은 곳을 처분하고 닫았지만 해결할 수 없었습니다 .. – araf

관련 문제