2010-12-01 5 views
2

파일의 데이터를 읽지 만 파일 끝에서 하드 드라이브의 데이터를 계속 읽는 방법이 있습니까? 정상적인 파일 I/O의 경우 fread()를 사용할 수는 있지만 분명히 파일의 끝까지 읽습니다. 그리고 Windows 컴퓨터에이 기능이 필요하다는 점을 추가하면 도움이 될 것입니다.EOF 지나서 HD 데이터를 읽을 수있는 방법이 있습니까?

이 모든 것을 대신하는 방법은 일반적인 I/O 문제가있는 사람들과 같이 EOF와 관련이없는 관련 주제에 대한 결과를 찾는 것입니다.

내 추측은 실수로 내가 작업하고있는 텍스트 파일의 텍스트 일부를 삭제했기 때문에 하루 종일 작업 한 것입니다. 필자는 파일 복구 작업을 여러 차례 시도했지만, 삭제 된 파일을 복구하는 것으로 보인다. 문제는 파일이 아직 있지만 일부 정보가 없는데, 일부 데이터가 직접 존재하기를 바라고있다. 파일의 현재 표시된 끝 부분 다음에 조각화되지 않았거나 이미 청구되었거나 다른 방법으로 덮어 쓰지 않습니다. 이 문제에 특히 도움이되는 프로그램을 찾을 수 없기 때문에, 나는 무엇인가를 빨리 만들 수 있기를 바라고 있습니다. 나는 무엇이 관련되어 있는가에 따라 작업을 재실행하는 것만 큼 가능하지 않을 수도 있음을 이해합니다. 나는 그것이 사실이 아니라고 희망하고있다).

내가 예상 할 수있는 한, 정확하지 않을 수도 있지만 (확실하지 않아서 내가 도움을 요청하는 이유입니다.) 세 가지 가능성이 있습니다.

최악의 경우 : 전체 하드 드라이브에 직접 액세스 할 수있는 Windows API 함수를 찾아야합니다 (예 : 메모리에 대한 함수와 비슷 함). 전체 데이터를 스캔합니다. 나는 여전히 파일로부터 접근 할 수 있고, 그 다음에 무엇이 계속되는지를 계속 보게된다.

둘째 : 나는 파일에 대한 포인터를 얻을 수있다. 그렇다면 여전히 HD에 원시 액세스를해야하지만 최소한 파일에 대한 포인터가 있어야한다.

3 개 중 최고 : 쓰기 액세스를 위해 파일을 열어 끝에 도달 한 다음 더 많은 공간을 요구하는 과거 EOF를 작성하지만 먼저 Windows가 데이터를 정리하기 전에 데이터를 정리하지 않기를 바랍니다. 그래서 실제로 찾고자하는 그 자리에서 이전 데이터 인 가비지 데이터를 얻을 수 있습니까? 그것이 간단하다면 이것은 굉장 할 것입니다. 그러나 실패했을 경우 데이터를 잃어 버릴 수 있으므로 테스트 해봐야합니다. 다른 누군가가 이미 알고 있기를 바랍니다. 문제가되는 PC는 Windows의 세부적인 사항을 알고있는 모든 사람에게 중요하다면 Vista Home Premium을 실행 중입니다.

그 세 가지 중 어느 하나가 그럴듯 해 보입니까? 네이든 아니든, 나는 또한 다른 제안들, 특히 내 어리석은 아이디어보다 더 나은 아이디어들에 대해서 열어 놓고 열망한다. 특히 그들이 일을 끝내기 위해 사용하는 특정 기능에 대한 지침을 가지고 있다면.

또한 실제로 다른 사람이 삭제 된 파일을 복구하는 것이 아니라 실제로 이와 같은 상황에서 작동하고 무료이며 신뢰할 수있는 복구 프로그램에 대해서 들어 본 사람도 있습니다.

미리 도움을 청하십시오.

+0

잘 모르겠지만 [이 링크] (http://support.microsoft.com/kb/100027) 도움이 될 수 있습니다. 그러나 그것은 조금 오래되다. –

답변

3

하드 드라이브의 여유 공간을 스캔하고 하드 드라이브의 데이터를 복구하는 유틸리티가 있어야합니다 (예 : PhotoRec 또는 foremost). 그러나 컴퓨터를 많이 사용했다면 (심지어 캐시에서 파일을 생성하는 웹 탐색이라 할지라도), 데이터는 이미 덮어 썼을 가능성이 있습니다. 복구 도구를 동일한 하드 드라이브에 저장하거나 동일한 PC를 사용하여 복구 도구를 다운로드하지 마십시오. 다른 컴퓨터에서 가져 와서 USB 장치에 저장 한 다음 해당 장치에서 USB 장치를 실행하십시오.

질문의 개념적 내용은 파일이 추상적 인 개체입니다. 아마도 파일 시스템/디스크 "blocksize"의 다음 배수까지 (구현에 따라) 제외하고는 "과거 eof"데이터와 같은 것이 존재하지 않습니다. 또한 편집자가 파일을 잘라내어 처음부터 새로 작성하는 방식으로 파일을 "저장"할 수도 있습니다 (즉, 기존 저장 공간과 새 저장 공간 사이의 통신이 반드시 필요하지는 않음).

0

귀하의 질문에 많은 의미가 없습니다. 정의에 따르면 EOF 이후 파일에는 아무 것도 없습니다. 추가 설명에 따르면, 파일에서 사용되는 마지막 바이트 다음에 임의의 가비지 (사용되지 않은 공간)이거나 다른 파일 일 수있는 디스크의 내용을 읽는 것으로 나타납니다. 그러나 어느 경우이든이 파일의 일부가 아닌 디스크의 데이터 인 'EOF 이후의 데이터'가 아닙니다. 파일 시스템이 그런 방식으로 데이터를 배치하는 경우에도 동일한 파일의 다른 부분 일 수 있습니다 - 일부 파일 시스템은 디스크를 통해 임의로 흩어져있는 블록을 흩어지게하고 어떤 바이트가 어떤 파일에 속해 있는지 이해할 필요가 있는지 파악합니다 파일 시스템 메타 데이터.

+1

그래서 "내가 EOF를 넘어서 파일 데이터를 읽을 수 있습니까?"라는 질문에 "파일의 EOF를 지나치게 HD 데이터를 읽을 수 있습니까?"라고 제목을 짓지 않았습니다. 그 나머지 부분에 관해서는 알고 있습니다. 저는 원래의 질문에서 이러한 문제를 직접 언급했습니다. (인용, '나는 현재 그 파일의 일부가 현재 표시된 파일 끝 부분 바로 뒤에 존재하고 다른 곳에서 또는 이미 조각난 않았 으면 좋겠다. 주장했거나 다른 방식으로 덮어 쓴 것 "이라고 말했고 또한 가비지 데이터를 얻으려면 운영 체제에서 지워지지 않고 대신 HD의 이전 내용이 될 것이라고 기대했다. – Loduwijk

관련 문제