2017-12-14 1 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値であり、数は2^15-1より大きい場合は、負の数を取得することを考えます。 これは、あなたが何をする必要があるかケースがちょうどフォローをすることによってlongに変更している場合には:

long l = (gf.getFileLength() & 0xFFFFFFFFL); 、あなたは正の数を取得します。

+0

実際には、getFileLength()の結果はすでに長いです: –

+0

'getFileLength()'のHEX値は何ですか? –

+0

良い結果は144003264 0x89550c0(実137MB、144003264B)であり、間違ったものは-1898159909 0xffffffff8edc60db(実際の2.23GB、2396807387B)です。しかし、主な関心事は「header.CamelFileLengthとfile:sizeが空の理由」です。回避策を実行しようとしていません... –

関連する問題