mirror of
https://github.com/qbittorrent/qBittorrent.git
synced 2025-12-17 06:01:33 -06:00
Don't fail because of existing files when exporting torrent files
PR #23315. Closes #23017.
This commit is contained in:
committed by
GitHub
parent
42786b2afc
commit
84224c1bbf
@@ -3179,7 +3179,7 @@ void SessionImpl::exportTorrentFile(const Torrent *torrent, const Path &folderPa
|
||||
while (newTorrentPath.exists())
|
||||
{
|
||||
// Append number to torrent name to make it unique
|
||||
torrentExportFilename = u"%1 %2.torrent"_s.arg(validName).arg(++counter);
|
||||
torrentExportFilename = u"%1 (%2).torrent"_s.arg(validName).arg(++counter);
|
||||
newTorrentPath = folderPath / Path(torrentExportFilename);
|
||||
}
|
||||
|
||||
|
||||
@@ -836,21 +836,21 @@ void TransferListWidget::exportTorrent()
|
||||
bool hasError = false;
|
||||
for (const BitTorrent::Torrent *torrent : torrents)
|
||||
{
|
||||
const QString validName = Utils::Fs::toValidFileName(torrent->name(), u"_"_s);
|
||||
const Path filePath = savePath / Path(validName + u".torrent");
|
||||
if (filePath.exists())
|
||||
const QString validName = Utils::Fs::toValidFileName(torrent->name());
|
||||
QString torrentExportFilename = u"%1.torrent"_s.arg(validName);
|
||||
Path newTorrentPath = savePath / Path(torrentExportFilename);
|
||||
int counter = 0;
|
||||
while (newTorrentPath.exists())
|
||||
{
|
||||
LogMsg(errorMsg.arg(torrent->name(), filePath.toString(), tr("A file with the same name already exists")) , Log::WARNING);
|
||||
hasError = true;
|
||||
continue;
|
||||
// Append number to torrent name to make it unique
|
||||
torrentExportFilename = u"%1 (%2).torrent"_s.arg(validName).arg(++counter);
|
||||
newTorrentPath = savePath / Path(torrentExportFilename);
|
||||
}
|
||||
|
||||
const nonstd::expected<void, QString> result = torrent->exportToFile(filePath);
|
||||
if (!result)
|
||||
if (const nonstd::expected<void, QString> result = torrent->exportToFile(newTorrentPath); !result)
|
||||
{
|
||||
LogMsg(errorMsg.arg(torrent->name(), filePath.toString(), result.error()) , Log::WARNING);
|
||||
LogMsg(errorMsg.arg(torrent->name(), newTorrentPath.toString(), result.error()) , Log::WARNING);
|
||||
hasError = true;
|
||||
continue;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user