FileInfo
및 Length
속성에 매우 이상한 문제가 있습니다. 나는 파일 (주로 이미지)을 클라이언트에게 보내는 호출에 응답하는 서버를 작성하고 있습니다. 실제 파일을 보내기 전에 파일 크기를 클라이언트에 보내려고합니다. FileInfo
을 사용하여 파일 크기를 찾고 있지만 이상하게도 올바른 크기를 매번 제공하지 않습니다. 다르게 말하자면 동일한 파일에 대해 크기가 다르거 나 때로는 실제 크기보다 작고 때로는 정확합니다 (그러나 실제 크기보다 크지는 않습니다). 문제가 더욱 이상하게 생기는 이유는 동일한 코드를 새 프로젝트 (서버가 아닌 테스트 프로젝트)에 복사하면 제대로 작동하고 올바른 대답을 얻을 수 있기 때문입니다. 서버는 여러 클라이언트가 연결할 수 있도록 스레드를 사용합니다 (테스트 프로젝트는 그렇지 않습니다). 그러나 이것은 FileInfo
과 관련이 없습니다. 여기 내 코드 :FileInfo.Length가 올바른 파일 크기를 항상 제공하지 않습니다.
String fullFilePath = Environment.GetFolderPath(Environment.SpecialFolder.Desktop) + "\\" + imageName;
FileInfo file1 = new FileInfo(fullFilePath);
Console.Writeline("File Size: {0}", file1.Length);
매우 기본적인 코드! 내 이미지는 4 ~ 10KB 범위에서만 작습니다. 내가 뭔가 잘못하고 있는거야? 어떤 제안?
실제 크기는 어떻게 측정합니까? – SLaks
한 번에 하나씩 특정 파일에 대한 파일 정보 만 요청하도록 서버를 제한해야하는 것처럼 들립니다. – Tejs
@SLaks 나는 실제 크기를 3 가지 방법으로 측정하고있다 : (1) 파일을'byte' 배열에로드 할 때 올바른 크기를 준다. (2) 클라이언트에서 디스크의 크기를 측정한다. (3) on 서버에 대한 액세스 권한이 있으므로 간단히 파일을 마우스 오른쪽 단추로 클릭하고 속성을 읽습니다. – antf