У меня копируется пустой файл. Хотя до копирования я его создаю и наполняю содержимым. Мой код :
void CreateTrack::XmlStreamWriter()
{
QDate Date = Date.currentDate();
QString DateString = Date.toString("dd-MM-yy");
if (QDir(QDir::currentPath()+"/Temp/").exists() == false) {
QDir().mkpath(QDir::currentPath()+"/Temp/");
}
QString NameFile = QDir::currentPath()+"/Temp/Маршр. точки_"+DateString+".gpx";
QFile file(NameFile);
if(file.open(QIODevice::WriteOnly | QIODevice::Append))
{
QXmlStreamWriter writer( &file );
writer.setCodec("UTF-8");
writer.writeStartDocument("1.0",false);
writer.writeStartElement("gpx");
writer.writeAttribute(QXmlStreamAttribute("xmlns", "http://www.topografix.com/GPX/1/1"));
writer.writeAttribute(QXmlStreamAttribute("xmlns:gpxx", "http://www.garmin.com/xmlschemas/GpxExtensions/v3"));
writer.writeAttribute(QXmlStreamAttribute("xmlns:wptx1", "http://www.garmin.com/xmlschemas/WaypointExtension/v1"));
writer.writeAttribute(QXmlStreamAttribute("xmlns:gpxtpx", "http://www.garmin.com/xmlschemas/TrackPointExtension/v1"));
writer.writeAttribute(QXmlStreamAttribute("creator", "GPSMAP 64st"));
writer.writeAttribute(QXmlStreamAttribute("version", "1.1"));
writer.writeAttribute(QXmlStreamAttribute("xmlns:xsi", "http://www.w3.org/2001/XMLSchema-instance"));
writer.writeAttribute(QXmlStreamAttribute("xsi:schemaLocation", "http://www.topografix.com/GPX/1/1 http://www.topografix.com/GPX/1/1/gpx.xsd http://www.garmin.com/xmlschemas/GpxExtensions/v3 http://www8.garmin.com/xmlschemas/GpxExtensionsv3.xsd http://www.garmin.com/xmlschemas/TrackStatsExtension/v1 http://www8.garmin.com/xmlschemas/TrackStatsExtension.xsd http://www.garmin.com/xmlschemas/WaypointExtension/v1 http://www8.garmin.com/xmlschemas/WaypointExtensionv1.xsd http://www.garmin.com/xmlschemas/TrackPointExtension/v1 http://www.garmin.com/xmlschemas/TrackPointExtensionv1.xsd"));
writer.writeStartElement("metadata");
writer.writeStartElement("link");
writer.writeAttribute(QXmlStreamAttribute("href", "http://www.garmin.com"));
writer.writeTextElement("text","Garmin International");
writer.writeEndElement();
QDateTime DateTime = DateTime.currentDateTime();
QString DateTimeString = DateTime.toString("yyyy-MM-ddThh:mm:ssZ");
writer.writeTextElement("time",DateTimeString);
writer.writeEndElement();
CreateTrack::XmlStreamWriterElement(writer);
writer.writeEndElement();
writer.writeEndDocument();
}
bool Garmin = false;
foreach (const QStorageInfo &storage, QStorageInfo::mountedVolumes()) {
if (!storage.isReadOnly()) {
QString GPX = "Garmin/GPX";
if (QDir(storage.rootPath()+GPX).exists() == true) {
qDebug()<<storage.rootPath()+GPX+"/"+QFileInfo(NameFile).fileName();
qDebug()<<NameFile;
QFile::copy(NameFile,storage.rootPath()+GPX+"/"+QFileInfo(NameFile).fileName());
//QFile::remove(NameFile);
Garmin = true;
msgBox.setText("Трек добавлен.");
msgBox.exec();
this->close();
} else {
//msgBox.setText("Устройство GARMIN не найдено.");
//msgBox.exec();
}
}
}
if (Garmin == false) {
//QFile::remove(NameFile);
msgBox.setText("Устройство GARMIN не найдено.");
msgBox.exec();
}
return;
}
void CreateTrack::XmlStreamWriterElement(QXmlStreamWriter& writer)
{
for (int i=1;i<ModelPoint->rowCount();i++) {
writer.writeStartElement("wpt");
writer.writeAttribute(QXmlStreamAttribute("lat", ModelPoint->index(i,0).data().toString().replace(",",".")));
writer.writeAttribute(QXmlStreamAttribute("lon", ModelPoint->index(i,1).data().toString().replace(",",".")));
QDateTime DateTime = DateTime.currentDateTime();
QString DateTimeString = DateTime.toString("yyyy-MM-ddThh:mm:ssZ");
writer.writeTextElement("time", DateTimeString);
writer.writeTextElement("name", ModelPoint->index(i,2).data().toString());
writer.writeTextElement("sym", "Flag, Blue");
writer.writeEndElement();
}
}
В результате получается файл "D:/My Programs/build-ObservationLog-Desktop_Qt_5_11_0_MSVC2017_64bit-Debug/Temp/Маршр. точки_24-07-18.gpx":
<?xml version="1.0" encoding="UTF-8" standalone="no"?><gpx xmlns="http://www.topografix.com/GPX/1/1" xmlns:gpxx="http://www.garmin.com/xmlschemas/GpxExtensions/v3" xmlns:wptx1="http://www.garmin.com/xmlschemas/WaypointExtension/v1" xmlns:gpxtpx="http://www.garmin.com/xmlschemas/TrackPointExtension/v1" creator="GPSMAP 64st" version="1.1" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.topografix.com/GPX/1/1 http://www.topografix.com/GPX/1/1/gpx.xsd http://www.garmin.com/xmlschemas/GpxExtensions/v3 http://www8.garmin.com/xmlschemas/GpxExtensionsv3.xsd http://www.garmin.com/xmlschemas/TrackStatsExtension/v1 http://www8.garmin.com/xmlschemas/TrackStatsExtension.xsd http://www.garmin.com/xmlschemas/WaypointExtension/v1 http://www8.garmin.com/xmlschemas/WaypointExtensionv1.xsd http://www.garmin.com/xmlschemas/TrackPointExtension/v1 http://www.garmin.com/xmlschemas/TrackPointExtensionv1.xsd"><metadata><link href="http://www.garmin.com"><text>Garmin International</text></link><time>2018-07-24T13:04:46Z</time></metadata><wpt lat="55.701" lon="37.5572"><time>2018-07-24T13:04:46Z</time><name>photo03 — копия.jpg</name><sym>Flag, Blue</sym></wpt><wpt lat="60.049883" lon="30.352043"><time>2018-07-24T13:04:46Z</time><name>ПРОБА 0</name><sym>Flag, Blue</sym></wpt><wpt lat="60.049913" lon="30.352396"><time>2018-07-24T13:04:46Z</time><name>Проба 1</name><sym>Flag, Blue</sym></wpt><wpt lat="60.05" lon="30.35"><time>2018-07-24T13:04:46Z</time><name>ПРОБА 5555</name><sym>Flag, Blue</sym></wpt></gpx>
А в GARMIN отправляется пустой файл "I:/Garmin/GPX/Маршр. точки_24-07-18.gpx"
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости