[jcifs] Problem reading files from a share
Ingo Rockel
irockel at pironet-ndh.com
Mon Nov 6 12:45:21 GMT 2006
Hi Mike,
thanx for the hint, but it looks like the mentioned code never gets
called in the example, so no HexDump-Output.
I've attached the example again inline, so it doesn't get stripped:
import java.io.PrintStream;
import java.net.URL;
import jcifs.Config;
import jcifs.smb.SmbFile;
public class JCifsTest1
{
public static void main(String args[])
throws Exception
{
if(args[0].lastIndexOf('/') != args[0].length() - 1)
args[0] = args[0].substring(0, args[0].length() - 1);
System.out.println("****** Argument: >>>" + args[0] + "<<<");
System.out.println("****** new SmbFile");
Config.registerSmbURLHandler();
SmbFile smbfile = new SmbFile(args[0]);
long l = System.currentTimeMillis();
System.out.println("file.getURL().getPath(): " +
smbfile.getURL().getPath());
System.out.println("file.getPath(): " + smbfile.getPath());
String s = smbfile.getURL().getPath();
System.out.println("p: >>" + s + "<<");
System.out.println("lastIndexOf: " + s.lastIndexOf('/'));
System.out.println("length: " + s.length());
if(s.lastIndexOf('/') != s.length() - 1)
System.out.println("DEBUG: " + smbfile.getURL().getPath() +
" directory must end with '/' !!!!");
else
System.out.println("DEBUG: " + smbfile.getURL().getPath() +
" directory is ok");
System.out.println();
System.out.println();
System.out.println();
System.out.println();
System.out.flush();
System.out.println("****** file.listFiles");
SmbFile asmbfile[] = smbfile.listFiles();
long l1 = System.currentTimeMillis() - l;
System.out.println("****** loop files");
for(int i = 0; i < asmbfile.length; i++)
System.out.println("****** " + asmbfile[i]);
System.out.println();
System.out.println(asmbfile.length + " files in " + l1 + "ms");
}
}
thanx,
Ingo
Michael B Allen schrieb:
> I think your attachment got stripped but it sure looks like an encoding
> problem. But the fact that it happends in a new build of Sun's JRE is
> interesting in itself. Try adding a Hexdump.hexdump() call just before
> src/jcifs/smb/NetShareEnumResponse.java:105.
>
> Mike
>
> On Thu, 26 Oct 2006 14:44:49 +0200
> Ingo Rockel <irockel at pironet-ndh.com> wrote:
>
>> Hi all,
>>
>> we recently switched to j2sdk1.4.2_12 and there we have a Problem
>> fetching contents of a share using jcifs. The problem doesn't exists in
>> j2sdk1.4.2_11 nor in jdk1.5.0_08 nor recent RC of 1.6.
>>
>> I've attached a small test class demonstrating the problem. The class
>> tries to connect to a share passed as param (something like
>> "smb://user:pw@some.machine/some_share/") and lists the content. With
>> all jdks except 1.4.2_12 the result is ok, but with 1.4.2_12 something
>> like this is returned:
>>
>> ****** loop files
>> ****** smb://x:x@some.server/webdav_test/?/
>> ****** smb://x:x@some.server/webdav_test/??/
>> ****** smb://x:x@some.server/webdav_test/???????????????
>> ****** smb://x:x@some.server/webdav_test/????????????/
>> ****** smb://x:x@some.server/webdav_test/??/
>> ****** smb://x:x@some.server/webdav_test/??????????
>> ****** smb://x:x@some.server/webdav_test/???????????????
>>
>> I tried connections to (german) win2000 and win2003 server, both return
>> the result above. If connecting to a smb-server running on linux the
>> result is ok. I tried setting jcifs.encoding to different values
>> (cp1252, utf8) but without any success.
>>
>> I checked the release notes of 1.4.2_12 but anything of the changes
>> looks like it affects this.
>>
>> Any Ideas?
>>
>> Ingo
>>
>> --
>> PIRONET NDH AG
>> Dipl. Inf. Ingo Rockel - Produktentwicklung
>> Maarweg 149-161, 50825 Koeln
>> Tel.: +49 (0)221-770-1788 / Fax: +49 (0)221-770-1005
>> mailto:irockel at pironet-ndh.com - http://www.pironet-ndh.com
>>
>
>
--
PIRONET NDH AG
Dipl. Inf. Ingo Rockel - Produktentwicklung
Maarweg 149-161, 50825 Koeln
Tel.: +49 (0)221-770-1788 / Fax: +49 (0)221-770-1005
mailto:irockel at pironet-ndh.com - http://www.pironet-ndh.com
More information about the jcifs
mailing list