2010-07-18 4 views
2

문자열의 경로가 주어지면 파일의 내용을 지울 것입니다. 필자가 생각한 (어쩌면 틀린) 자연스러운 방법은 FileStream을 파일에 열고 횡설수설하는 (RNGCryptoServiceProvider에서 가져온 임의의 데이터) 파일을 작성하는 것이 었습니다. 그런 다음이 작업을 여러 번 수행 한 다음 파일을 삭제하십시오.Compact Framework에서 파일을 안전하게 지우기

내 문제는 논리적으로 올바른 것처럼 보일 수 있지만 실제로 Windows가 파일을 하드 디스크의 다른 위치에 쓰도록 선택할 수있는 다른 블로그에서 읽는 것입니다.

Windows Mobile의 경우입니까? 이것이 실제로 문제가됩니까? 하드 디스크의 다른 위치에 쓰기가 플래시 기반 (SD 등) 카드에도 적용됩니까?

+2

확실하지는 않지만 SD/SSD와 같은 것들에 대한 마모 균등화 펌웨어로 인해 더 취약해질 수 있습니다. –

+1

@Marc : 그렇습니다. 카드의 마모가 심해지면 카드를 매우 취약하게 만들 것입니다. 온보드 플래시와 동일합니다. – ctacke

+0

1과 0을 여러 번 쓰는 것만으로 파일을 안전하게 덮어 쓸 수있는 것은 아닙니다. –

답변

0

필자는 개인적으로이 작업을 수행하지는 않았지만이 작업을 제대로 수행하려면 저수준 FLASH 드라이버 IOCTL을 사용해야 할 것입니다.

http://msdn.microsoft.com/en-us/library/aa927166.aspx

나는 IOCTL_FMD_RAW_WRITE_BLOCKS 특히 유용 보이는 생각합니다.

-PaulH


다음, 일반적으로 파일을 삭제 플래시에 여유 공간을 모두 닦아 조각 모음 API를 사용하는 것 일 수있는 또 다른 가능성. 모든 것을 지우고 있기 때문에 파일이있는 디스크의 정확한 위치를 알 필요가 없습니다. 그러나 이것은 플래시 드라이브를 더 빨리 마모시킵니다. C# 방법은 블로그 게시물에 자세히 설명되어 있습니다. http://blogs.msdn.com/b/jeffrey_wall/archive/2004/09/13/229137.aspx

+0

그는 CF/SD 카드와 같은 탑재 된 저장소에있는 파일이라면 어떤 용도로든 사용할 수있는 파일을 찾아야 할 것입니다. 카드가 아마도 마모 균등화를하고 있기 때문에 작동하지 않을 것입니다 데이터가있는 곳에 원시 쓰기 권한이 없습니다. – ctacke

+0

@ctacke - defrag API는 무엇입니까 [http://msdn.microsoft.com/en-us/library/aa365731%28v=VS.85%29.aspx]? SDelete [http://technet.microsoft.com/en-us/sysinternals/bb897443]는 디스크에서 파일을 찾는 데 사용됩니다. – PaulH

+0

이 질문은 Windows CE/Windows Mobile에 대한 것이므로 조각 모음 API는 없습니다. – ctacke

관련 문제