2017-12-14 14 views
0

smb을 사용하여 파일을 복사하고 있지만 파일이 크면 (500MB-3.5GB) $ {header.CamelFileLength} 및 $ {file : size}는 null을 반환합니다.Camel, smb에서 대용량 파일을 복사 할 때 null이 파일로 나타남 : size

@Override 
public boolean accept(GenericFile<T> gf) 

을과()는 gf.getFileLength 보인다 음수 값을 결과 : 나는 그것을 테스트하기 위해 필터를 작성했습니다 전에 소모한다.

올바른 결과를 얻으려면 조언이 필요하십니까?

미리 감사드립니다.

낙타 v2.20.1 낙타 JCIFS의 v2.18.0 JCIFS의 v1.3.17

답변

0

나는 이것이 int 값이라고 생각하고 수는 음수를 얻을 것이다 큰 15-1^2보다 경우 . 이 방금 추적을 수행하여 long로 변경됩니다해야 할 일 경우라면 :

long l = (gf.getFileLength() & 0xFFFFFFFFL); 는 당신은 양수를 얻을 것이다.

+0

실제로 getFileLength()의 결과는 이미 길다. –

+0

'getFileLength()'의 HEX 값은 얼마인가? –

+0

좋은 결과는 144003264 0x89550c0 (실제 137MB, 144003264B)이며 잘못된 것은 -1898159909 0xffffffff8edc60db (실제 2.23GB, 2396807387B)입니다. 그러나 주요 관심사는 "왜 header.CamelFileLength 및 file : 크기가 비어 있습니까?"입니다. 해결 방법을 시도하는 중 ... –