내 Windows 응용 프로그램에 이미지 저장 절차가 있습니다 .i는 그리드에서 볼 수있는 다양한 images.the 이미지 세부 정보를 저장합니다. 그리드에서 해당 행을 클릭하면 이미지가 그림 상자에 표시됩니다. .i 삭제 키를 눌러 열려있는 그림을 삭제하려고합니다.이 작업에 대해 "deletefile (path)"코드를 사용했지만 해결 방법을 아는 사람은 "이 파일은 다른 프로세스에서 사용 중입니다."오류가 있습니다. 이 문제 때문에 제발 도와주세요. 고맙습니다.그림이 다른 프로세스에서 사용되었습니다
답변
Image.FromStream을 사용하여 이미지 파일을 열고 이미지가로드 된 후에 closestream을 확인하십시오. 그렇게하면 파일에 자물쇠가 없어야합니다.
덧글 추가.
저는 Visual Studio를 가지고 있지 않습니다. 저는 C#을 사용하지만, 이렇게 보일 것입니다.
Dim stream As New FileStream(specified_path, FileMode.Open)
Dim image As Image = Image.FromStream(stream)
picturebox1.image = image
stream.Close()
해당 파일에서 생성 된 비트 맵 개체에 대한 참조가 있습니까? 그렇다면 Bitmap 개체가 파일을 잠그므로 파일을 삭제할 수 없습니다.
문제는 파일을 삭제하는 위치가 아니며 이미지를 표시하는 방법에 있습니다. 이미지로드 방법을 보여주는 코드를 추가 할 수 있습니까?
Bitmap.FromFile 목록을 사용하여 이미지를로드하면 Bitmap 객체는 파일이 삭제 될 때까지 파일에 대한 잠금을 유지합니다. 따라서 필요하지 않으면 파일을 강제로 해제하려면
구문을 사용하면됩니다. 이렇게하면 잠그지 않습니다. 잠그는 이유는 비트 맵 객체를 만들 때 전체 비트 맵을 메모리에로드하지 않고 요구에 따라 느리게로드하므로 파일에 잠금을 유지해야하기 때문입니다.
난, t 내가 당신이해야합니다 추측에 PictureBox "그럼 picturebox1.image = image.fromfile (지정된 경로) – user85511
에 말해 understand.please 수 있습니다 당신은 속성으로로드 이미지에 대한 참조 유지 : IMG = Image.FromFile (경로) picturebox1.Image = IMG, 다음 이미지를 삭제하기 전에 : picturebox1.Image = NULL; img.Dispose(); img = null; /* 파일 삭제 */ – user85511
에 이미지를 열려면이 코드를 사용하여 detail.please – Locksfree
- 1. 다른 프로세스에서 메시지 받기
- 2. 다른 프로세스에서 SQLite에 액세스
- 3. 다른 프로세스에서 SetProcessDEPPolicy를 호출합니까?
- 4. macosx의 다른 프로세스 창에 그림이 있습니까?
- 5. 다른 뷰 위에 NSScrollView의 그림이 그려져 있습니다.
- 6. 다른 프로세스에서 사용하는 파일 읽기
- 7. 다른 프로세스에서 어셈블리를 사용 중입니다.
- 8. 다른 프로세스에서 창을 닫는 방법
- 9. 다른 프로세스에서 메모리를 할당하는 방법
- 10. 다른 프로세스에서 파일을 사용 중입니다.
- 11. Java의 다른 프로세스에서 스레드를 시작하십시오.
- 12. 다른 프로세스에서 사용중인 백업 파일
- 13. glassPane에 그림이 느립니다.
- 14. 푸시 등록이 j2me에 사용되었습니다.
- 15. BackgroundWorker가 컬렉션 항목에 사용되었습니다.
- 16. 잘못된 그림이 삭제됩니다.
- 17. RoutedEvent 이름이 이미 사용되었습니다.
- 18. FB.UI 그림이 표시되지 않습니다.
- 19. 문제 그림이 표보기에 표시됩니다.
- 20. 그림이 IE에 표시되지 않습니다!
- 21. 플래시 문자가 리눅스에서 사용되었습니다
- 22. 콘솔 출력에 QTextStream이 사용되었습니다.
- 23. 100 % CPU가 javapns에 사용되었습니다.
- 24. 거리가 이미지 비교에 사용되었습니다
- 25. webapplication과 함께 traceview가 사용되었습니다.
- 26. spring.net이 클래스 라이브러리에 사용되었습니다.
- 27. LoginView가 사용자 정의 로직에 사용되었습니다.
- 28. Android 에뮬레이터 오류 : 다른 에뮬레이터에서 사용자 데이터 이미지가 사용되었습니다.
- 29. 다른 프로세스에서 환경 변수를 확인 하시겠습니까?
- 30. 다른 프로세스에서 플러시되지 않은 페이지 읽기
내 코드는 다음과 같습니다. my.computer .filesystem.deletefile (경로) – user85511
는 난에 PictureBox " picturebox1.image = image.fromfile (지정된 경로) 이 방법은 fromstream 메도를 사용하고 있음 – user85511
를 닫을 방법에 화상을 열이 코드를 사용하여 이 작업 좋은. 그러나 그림 상자에 표시되는 이미지는 지워지지 않습니다. – user85511