2011-08-29 3 views
0

C# (Winforms)에서이 학교 프로젝트를하고 있는데 보조 양식에 임시 파일을 만들었습니다 ... File.Create(filepath);을 사용했지만 임시 폐쇄 파일에서 삭제하려고 할 때 내 주요 양식의 ... 다음 그것은 오류 메시지를 제공합니다. 이 파일은 다른 프로세스에서 사용 중입니다. 나는 시도 :Txt 파일 C#으로 액세스 할 때 오류가 발생했습니다

if (File.Exists(tmpFile)) 
    { 
    File.SetAttributes(@tmpFile, FileAttributes.Temporary); 
    File.Delete(tmpFile); 
    } 

그러나 아무것도 좋은, 더 나은 아이디어와이 오류가 온 이유 논리적 인 이유를해야합니까? please

+0

다른 프로그램에서 파일을 열어 보셨습니까? – AndrewC

+0

아니요 .. 하위 양식은 tmp 파일을 만들고 기본 양식의 이탈 이벤트는이 파일을 삭제해야합니다 .... 다른 곳에서는 사용하지 않습니다. Btw는 Windows 탐색기에서이 경로를 열지 않습니다.이 오류가 발생합니까? – gsvirdi

+1

나는 File.Create()를 사용하는 대신에 ........ 사용자 정의 tmp 파일을 만들기 위해'FileStream'을 사용해야한다고 생각했다 ..... 예 : 'string fileName = "C : \\ "+ Log.admin.ToString() +".tmp "; FileStream fs = 새 FileStream (fileName, FileMode.CreateNew); fs.Close(); ' 나중에 동일한 파일을'File.Delete (fileName); '을 사용하여 삭제할 수 있습니다. 새로운 ppl, thx @VinayC 및 다른 모든 사람들에게 불만을 표시합니다. – gsvirdi

답변

0

파일을 만들려면 Path.GetTempFileName() 사용해야합니다.

파일을 직접 삭제하지 않아도됩니다. Windows에서 처리해줍니다.

+0

다른 프로그램에서 파일을 열었는지 알아볼 수 있습니다. http://technet.microsoft.com/en-us/sysinternals/bb896655 –

+0

을 통해 Microsoft에서 얻을 수있는 handle.exe를 사용하면 무엇이 필요합니까? 특정 이름으로 만 임시 파일을 만드시겠습니까? 예 : 문자열 filepath = "C : \\"+ comboBox1.Text + ".tmp"; – gsvirdi

+0

그냥 파일을 만들고 잘 삭제할 수 있어야합니다. 왜 파일의 속성을 변경해야합니까? –

3

File.Create은 파일 스트림을 반환합니다. 파일을 삭제하기 전에 스트림 (또는 파일에 대한 다른 핸들)을 닫아야합니다.

+0

나는 File.Create()를 사용하는 대신에 그것을 이해했다. .... 사용자 화 tmp 파일을 만들기 위해'FileStream'을 사용해야한다 ..... 예 :'string fileName = "C : \\" + Log.admin.ToString() + ".tmp"; FileStream fs = 새로운 FileStream (fileName, FileMode.CreateNew); fs.Close();'나중에 동일한 파일이'File.Delete (fileName); '을 사용하여 삭제 될 수 있습니다. 새로운 ppl, thx @VinayC 및 다른 모든 사람들에게 불만을 표시합니다. – gsvirdi

관련 문제