2011-01-11 2 views
0

나는 델파이 프로그래머입니다. 저장 장치의 전체 여유 공간에 더미 파일을 채우고 싶습니다. 이 작업을하는 동안 Windows 또는 다른 프로그램이 장치에 쓰지 못하도록하고 싶습니다. 나는 그것을 할 수있는 프로그램을 보았 기 때문에 그것이 가능하다는 것을 안다.내 프로그램과 동일한 시간에 OS 또는 다른 프로그램이 저장 장치에 쓰는 것을 방지하는 방법

이미 (NTFS에서 TFileStream을 사용하여) 더미 파일을 만드는 코드가 있으므로 잠금/잠금 해제 코드의 일종이 필요합니다.

누군가가 방법을 알고 있습니까 .. ..? 제안 해 주셔서 감사합니다.

전체 프로그램이 더 잘 작동하는 경우 해당 파일을 만드는 방식이 바뀌는 솔루션을 수락합니다.

감사합니다.

감사합니다.

+0

장치의 잠금을 해제하면 누군가가 드라이브의 여유 공간을 확보하는 것을 막을 수 있습니까? –

+0

그리고 왜 잠 가야합니까? 시스템이 디스크 공간 부족 오류를보고 할 때까지 그냥 쓰지 않으시겠습니까? 그 시점에서 당신은 당신이 그것을 채웠다는 것을 안다. –

+0

"나는 그것을 할 수있는 프로그램을 보았 기 때문에 그것이 가능하다는 것을 안다." - 네가 묻고있는 것처럼 보이는지 모르겠다. 다른 프로그램에서 정확히 무엇을 보았습니까? – ChrisW

답변

1

SetEndOfFile 아마도 트랜잭션 (성공 또는 실패) 기능이 있습니다. 사용 가능한 공간을 채우기 위해 파일을 늘리는 데 사용할 수 있다고 생각합니다.

+0

이것은 내 것보다 훨씬 나은 대답입니다! –

+0

그래, 나도 알아, 일종의 시도 "TFileStream.Size 시도 : = 크기; 결과 : = 사실, 예외 : = 거짓 거짓말;". 문제 중 하나는 새로운 크기를 "추측"해야한다는 것입니다. 그리고이 동안 OS 또는 다른 프로그램이 USB 드라이브에 다시 쓸 수있는 많은 값을 시도해야합니다. –

+0

@ 존 1 분 동안 천천히! 이것이 파일 시스템이 작동하는 방법입니다. 그것들은 수정할 수 있습니다. 아무 래도 잠금을 해제 할 수 있다고해도 더미 파일을 삭제하는 다른 앱을 중지하는 것은 무엇입니까? 대답 할 수 있니? –

관련 문제