Re: file name is not correct

Michael B Allen <[email protected]>
Newsgroups gmane.network.samba.java
Message-ID <CAGMFw4jFBd=UKaV1F4of+EWKce2zyyZJ-=RUJUWmL3HmcoWOmQ@mail.gmail.com>
2011/8/13  <[email protected]>:
> Hi, Mike,
>
>> Try the URL escape sequence for space which is %20 like:
>
> If I create SmbFile object from file name, It is OK.
> But I want to create SmbFile object from directory.
> 1. SmbFile dir = SmbFile("smb://host/dir/", auth);
> 2. SmbFile[] fileList = dir.listFiles();
> 3. execute getName, getUncPath ant getPath for each file got from fileList.
> 4. then, I receive file name without space.

Hi Dora,

I believe this is occurring because of the java.net.URL class which is
used internally to manipulate URLs. So it cannot handle some special
characters in special instances. Meaning the java.net.URL class is
trimming leading spaces from the filename. Unfortunately unless we
re-write JCIFS to not use the java.net.URL class, there is not a whole
lot we can do about this.

Mike

-- 
Michael B Allen
Java Active Directory Integration
http://www.ioplex.com/

> 2011/08/13 (Sat) 01:38, "Michael B Allen" <[email protected]> wrote:
>> Hi Dora,
>>
>> Try the URL escape sequence for space which is %20 like:
>>
>>   SmbFile file = new SmbFile("smb://host/dir/%20foo.txt", auth);
>>
>> Mike
>>
>> --
>> Michael B Allen
>> Java Active Directory Integration
>> http://www.ioplex.com/
>>
>> 2011/8/11  <[email protected]>:
>> > Hi all,
>> >
>> > I am using JCIFS version 1.3.16.
>> >
>> > Here is a file which name starts with space.
>> > When I use SmbFile#getName, SmbFile#getUncPath or SmbFile#getPath,
>> > the space of the name is deleted.
>> > I want to get the correct name.
>> > My usage is invalid?
>> > Teach me how to use JCIFS.
>> >
>> > We can not create the space file name from Windows Explorer.
>> > But, rename command can do.
>> > <Procedure>
>> > 1. create a file
>> > 2. change file name.
>> > 〓 〓# rename foo.txt " foo.txt"
>> >
>> > <Sample Source>
>> > package test;
>> >
>> > import jcifs.smb.NtlmPasswordAuthentication;
>> > import jcifs.smb.SmbFile;
>> >
>> > public class Test {
>> > 〓 〓public static void main(String[] args) {
>> > 〓 〓 〓 〓try {
>> > 〓 〓 〓 〓 〓 〓NtlmPasswordAuthentication auth = new NtlmPasswordAuthentication("xxx", "yyy", "zzz");
>> > 〓 〓 〓 〓 〓 〓SmbFile file = new SmbFile("smb://host/dir/", auth);
>> >
>> > 〓 〓 〓 〓 〓 〓SmbFile[] fileList = file.listFiles();
>> > 〓 〓 〓 〓 〓 〓for (SmbFile f : fileList) {
>> > 〓 〓 〓 〓 〓 〓 〓 〓System.out.println("name:" + f.getName());
>> > 〓 〓 〓 〓 〓 〓 〓 〓System.out.println("unc:" + f.getUncPath());
>> > 〓 〓 〓 〓 〓 〓 〓 〓System.out.println("path:" + f.getPath());
>> > 〓 〓 〓 〓 〓 〓}
>> > 〓 〓 〓 〓} catch (Exception e) {
>> > 〓 〓 〓 〓 〓 〓e.printStackTrace();
>> > 〓 〓 〓 〓}
>> > 〓 〓}
>> > }
>> >
>> > ----
>> > Dora.
>> >
>>
>
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.