Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / FTPFile to File / 17 сообщений из 17, страница 1 из 1
25.12.2013, 14:54:24
    #38512191
JulT
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
FTPFile to File
Всем привет.
Использую библиотеку Apache Commons NET для чтения XML файлов с ftp сервера:
Код: java
1.
2.
3.
4.
5.
6.
 FTPClient client = new FTPClient();
    
         client.connect("host", 21);
         client.login("bla", "bla");
    
         FTPFile fileList[]= client.listFiles();  



далее получаю конкретный файл
Код: java
1.
FTPFile fileList[i]


После чего хочу его распарсить:
Код: java
1.
2.
3.
4.
5.
  DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();

  DocumentBuilder db = dbf.newDocumentBuilder();

  Document doc = db.parse(file);


Проблема в том, что db.parse(file) - принимает объект типа File, а у меня тип FTPFile. Как преобразовать FTPFile в File, или есть другой подход?
Спасибо.
...
Рейтинг: 0 / 0
25.12.2013, 15:00:23
    #38512194
Лагман
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
FTPFile to File
client.retrieveFileStream(...)
...
Рейтинг: 0 / 0
25.12.2013, 15:00:34
    #38512195
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
FTPFile to File
FTPClient.retrieveFileStream и его парсить.
Либо скачать файл на локальный диск.
...
Рейтинг: 0 / 0
25.12.2013, 16:00:28
    #38512277
JulT
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
FTPFile to File
Спасибо, а скажите почему когда я сделала:
Код: java
1.
2.
3.
4.
5.
 FTPFile files[]= client.listFiles();    
        for (FTPFile file : files) {         
          if(!file.isDirectory()){
             System.out.println("type file = "+file.getType());        
         }}


мне выводит:
type file = 0
type file = 0
в каталоге лежат два файла:
f= export.xml
f= .ftpaccess
мне нужно взять именно тот, который xml и далее его парсить, второй какой-то служебный...
...
Рейтинг: 0 / 0
25.12.2013, 16:02:06
    #38512281
Лагман
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
FTPFile to File
JulT,

потому что в каталоге 2 файла, export.xml и служебный
...
Рейтинг: 0 / 0
25.12.2013, 16:03:55
    #38512282
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
FTPFile to File
JulT,

Это два обычных файла. Поэтому и тип один и тот же. А имя проверить не судьба?
...
Рейтинг: 0 / 0
25.12.2013, 16:04:11
    #38512283
Лагман
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
FTPFile to File
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
 /** A constant indicating an FTPFile is a file. ***/
    public static final int FILE_TYPE = 0;
    /** A constant indicating an FTPFile is a directory. ***/
    public static final int DIRECTORY_TYPE = 1;
    /** A constant indicating an FTPFile is a symbolic link. ***/
    public static final int SYMBOLIC_LINK_TYPE = 2;
    /** A constant indicating an FTPFile is of unknown type. ***/
    public static final int UNKNOWN_TYPE = 3;
...
Рейтинг: 0 / 0
25.12.2013, 16:05:13
    #38512286
JulT
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
FTPFile to File
ЛагманJulT,

потому что в каталоге 2 файла, export.xml и служебный
это понятно, я про другое, как мне получить именно xml-ый фал, просто по имени не могу, т.к. имя файла все время будет меняться..
...
Рейтинг: 0 / 0
25.12.2013, 16:06:38
    #38512288
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
FTPFile to File
Код: java
1.
2.
if(fileName.endsWith(".xml")){
}
...
Рейтинг: 0 / 0
25.12.2013, 16:06:52
    #38512290
JulT
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
FTPFile to File
BlazkowiczJulT,

Это два обычных файла. Поэтому и тип один и тот же. А имя проверить не судьба?
имя всегда разное будет
...
Рейтинг: 0 / 0
25.12.2013, 16:07:20
    #38512291
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
FTPFile to File
Код: java
1.
2.
if(!fileName.startsWith(".")){
}
...
Рейтинг: 0 / 0
25.12.2013, 16:08:01
    #38512292
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
FTPFile to File
JulTимя всегда разное будет
Ужас какой. А если имя будет .ftpaccess?
...
Рейтинг: 0 / 0
25.12.2013, 16:08:38
    #38512293
JulT
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
FTPFile to File
Blazkowicz
Код: java
1.
2.
if(fileName.endsWith(".xml")){
}


так я умею, хотела типа такого:
Код: java
1.
2.
if(file.getType()==Type.XML) {
}
...
Рейтинг: 0 / 0
25.12.2013, 16:10:27
    #38512295
_newcomer_
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
FTPFile to File
а вы считаете есть признак, на уровне файловой системы, говорящий что это XML (или JPG или DOC или....)?
...
Рейтинг: 0 / 0
25.12.2013, 16:20:31
    #38512311
Лагман
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
FTPFile to File
JulT,

так - ок:
Blazkowicz
Код: java
1.
endsWith(".xml")
...
Рейтинг: 0 / 0
25.12.2013, 17:12:19
    #38512368
JulT
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
FTPFile to File
Все сделала, всем спасибо за помощь))
...
Рейтинг: 0 / 0
25.12.2013, 18:54:13
    #38512459
avp.mk
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
FTPFile to File
ЛагманJulT,
так - ок:
Blazkowicz
Код: java
1.
endsWith(".xml")


Я бы IgnoreCase приделал.
Код: java
1.
if (endsWithIgnoreCase(fileName, ".xml"))

StringUtil.java
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
import static java.lang.Character.toLowerCase;

public class StringUtil {

    public static boolean isNullOrEmpty(String text) {
        return text == null || text.isEmpty();
    }

    /** @param prefix Если отправить пустой префикс - вернёт true. */
    public static boolean startsWithIgnoreCase(String text, String prefix) {
        int length = prefix.length();
        if (text.length() < length) {
            return false;
        }

        for (int i = 0; i < length; ++i) {
            if (notEqualsIgnoreCase(text.charAt(i), prefix.charAt(i))) {
                return false;
            }
        }

        return true;
    }

    /** @param suffix Если отправить пустой суффикс - вернёт true. */
    public static boolean endsWithIgnoreCase(String text, String suffix) {
        int s = suffix.length(), t = text.length();
        if (t < s) {
            return false;
        }

        while (s > 0) {
            if (notEqualsIgnoreCase(text.charAt(--t), suffix.charAt(--s))) {
                return false;
            }
        }

        return true;
    }

    private static boolean notEqualsIgnoreCase(char a, char b) {
        return a != b && toLowerCase(a) != b && toLowerCase(b) != a;
    }
}

...
Рейтинг: 0 / 0
Форумы / Java [игнор отключен] [закрыт для гостей] / FTPFile to File / 17 сообщений из 17, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]