JSON.stringify
84
2018-08-10 15:58:47
3
508

닷넷으로 파일이 열려있거나 실행할 때 삭제를 할 시 삭제 못하게 하는 방법 있을까요?


닷넷으로 파일을 삭제하고 있습니다.

File.Delete로 삭제를 하고 있는데 파일이 열려 있으면 삭제 못하도록 하려고 합니다.

 using (System.IO.File.Open(path, System.IO.FileMode.Open)) { }을 사용하여 에러가 날 시 파일이 사용 중이라고 판단하고 있습니다.

실행 파일이나 다른 한글 파일 등은 실행 중 삭제가 되지 않는데 메모장이나 Image 파일은 열려 있는데도 삭제가 됩니다.

찾아보니 실행파일은 실행 시 Lock이 걸려 삭제가 되지 않는 반면 메모장은 Lock이 걸리지 않아 삭제가 된다고 합니다.

닷넷으로 메모장 및 이미지 파일이 열려있는 상태를 체크하거나 삭제 못하도록 하는 방법이 있을까요?

0
0
  • 답변 3

  • 돌갤여신나나미
    2018-08-10 16:04:28

    c# process 찾아보세요.

    프로세스에서 돌아가고있는 목록 전부 가져올수있습니다

    1
  • JSON.stringify
    84
    2018-08-10 16:22:35

    GetProcessById, GetProcessByName 처럼 프로세스 이름이나 pid로 프로세스를 찾던데요.

    프로그램 경로만으로 이 파일이 실행 중인지 아닌지는 불가한가요?

    0
  • 호랭
    240
    2018-08-11 02:01:27 작성 2018-08-11 02:18:20 수정됨

    프로그램 경로만으로 파일이 실행 중인지 아는 것은 불가능하다고 봅니다. 첫번쨰 댓글처럼 Process에서 확인 하시는 게 맞는 방법인 거 같습니다.


    https://stackoverflow.com/questions/14468985/getting-the-friendly-name-for-a-process-after-starting-it

    참조하시면 확장자를 제외한 파일이름으로 GetProcessByName을 쓰시면 될거같습니다.


    틀린 부분이 있다면 지적 부탁드립니다.

    1
  • 로그인을 하시면 답변을 등록할 수 있습니다.