powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / FTPFile to File
17 сообщений из 17, страница 1 из 1
FTPFile to File
    #38512191
JulT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Всем привет.
Использую библиотеку 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
FTPFile to File
    #38512194
Лагман
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
client.retrieveFileStream(...)
...
Рейтинг: 0 / 0
FTPFile to File
    #38512195
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
FTPClient.retrieveFileStream и его парсить.
Либо скачать файл на локальный диск.
...
Рейтинг: 0 / 0
FTPFile to File
    #38512277
JulT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо, а скажите почему когда я сделала:
Код: 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
FTPFile to File
    #38512281
Лагман
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
JulT,

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

Это два обычных файла. Поэтому и тип один и тот же. А имя проверить не судьба?
...
Рейтинг: 0 / 0
FTPFile to File
    #38512283
Лагман
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: 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
FTPFile to File
    #38512286
JulT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЛагманJulT,

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

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


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

так - ок:
Blazkowicz
Код: java
1.
endsWith(".xml")
...
Рейтинг: 0 / 0
FTPFile to File
    #38512368
JulT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Все сделала, всем спасибо за помощь))
...
Рейтинг: 0 / 0
FTPFile to File
    #38512459
avp.mk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Лагман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
17 сообщений из 17, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / FTPFile to File
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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