Russian Qt Forum

Qt => Работа с сетью => Тема начата: alexorleon от Май 30, 2016, 09:54



Название: [Решено] Копирование файла из локальной сети
Отправлено: alexorleon от Май 30, 2016, 09:54
День добрый!

Подскажите каким способом в Qt5 скопировать файл из локальной сети?
Не пойму как указать нужный каталог в локальной сети. В какую сторону вообще копать?

Собственно хотелось периодически проверять некий каталог в сети на наличие файлов. Можно ли это сделать просто с помощью QFile например? Или необходимо создавать ftp сервер?


Название: Re: Копирование файла из локальной сети
Отправлено: gil9red от Май 30, 2016, 11:37
Файл находится на http/https?


Название: Re: Копирование файла из локальной сети
Отправлено: PimenS от Май 30, 2016, 11:49

Собственно хотелось периодически проверять некий каталог в сети на наличие файлов. Можно ли это сделать просто с помощью QFile например? Или необходимо создавать ftp сервер?

bool QFileInfo::exists(const QString &file)


Название: Re: Копирование файла из локальной сети
Отправлено: alexorleon от Май 30, 2016, 12:12
Файл находится на http/https?
smb://путь/к файлу/файл


Название: Re: Копирование файла из локальной сети
Отправлено: alexorleon от Май 30, 2016, 12:15
bool QFileInfo::exists(const QString &file)

Пробовал так. Пишет NOT.
Код:
if(QFile("smb://путь/к файлу/s3.zip").exists()){
    qDebug() << "YES";
} else {
    qDebug() << "NOT";
}


Название: Re: Копирование файла из локальной сети
Отправлено: PimenS от Май 30, 2016, 12:41
bool QFileInfo::exists(const QString &file)

Пробовал так. Пишет NOT.
Код:
if(QFile("smb://путь/к файлу/s3.zip").exists()){
    qDebug() << "YES";
} else {
    qDebug() << "NOT";
}


Специально проверил

Код:
    QFile file("//192.168.77.3/Users/Public/test.png");

    if (file.exists())
        qDebug() << "EXIST";
    else
        qDebug() << "NOT EXIST";

Ответ: EXIST

При отсутствии файла: NOT EXIST

Ошибка думаю где-то тут
Цитировать
"smb://путь/к файлу/s3.zip"


Название: Re: Копирование файла из локальной сети
Отправлено: alexorleon от Май 31, 2016, 08:08
Ответ как оказалось лежит на поверхности.
"QFile does not support non-local files."

Для этого необходимо монтировать локальный ресурс.

Создал каталог linky_share. Далее:
sudo mount -t cifs -o user=имя_пользователя //IP_адрес/путь/каталог /mnt/linky_share/

Теперь QFile может спокойно с этим работать.


Название: Re: Копирование файла из локальной сети
Отправлено: alexorleon от Май 31, 2016, 08:13
Ошибка думаю где-то тут
Цитировать
"smb://путь/к файлу/s3.zip"

Пишут так работает только под windows. Вроде бы.