forked from premiere/premiere-libtorrent
fix move_storage bugs
This commit is contained in:
parent
b14479132c
commit
f403b5f3c8
|
@ -1,5 +1,6 @@
|
||||||
* fix nagle implementation in uTP
|
* fix nagle implementation in uTP
|
||||||
|
|
||||||
|
* fix move_storage bugs
|
||||||
* fix unnecessary dependency on boost.date_time when building boost.asio as separate compilation
|
* fix unnecessary dependency on boost.date_time when building boost.asio as separate compilation
|
||||||
* always use SO_REUSEADDR and deprecate the flag to turn it on
|
* always use SO_REUSEADDR and deprecate the flag to turn it on
|
||||||
* add python bindings for SSL support
|
* add python bindings for SSL support
|
||||||
|
|
|
@ -124,6 +124,8 @@ namespace libtorrent
|
||||||
TORRENT_EXPORT size_type file_size(std::string const& f);
|
TORRENT_EXPORT size_type file_size(std::string const& f);
|
||||||
TORRENT_EXPORT bool is_directory(std::string const& f
|
TORRENT_EXPORT bool is_directory(std::string const& f
|
||||||
, error_code& ec);
|
, error_code& ec);
|
||||||
|
TORRENT_EXPORT void recursive_copy(std::string const& old_path
|
||||||
|
, std::string const& new_path, error_code& ec);
|
||||||
TORRENT_EXPORT void copy_file(std::string const& f
|
TORRENT_EXPORT void copy_file(std::string const& f
|
||||||
, std::string const& newf, error_code& ec);
|
, std::string const& newf, error_code& ec);
|
||||||
|
|
||||||
|
|
21
src/file.cpp
21
src/file.cpp
|
@ -268,6 +268,27 @@ namespace libtorrent
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void recursive_copy(std::string const& old_path, std::string const& new_path, error_code& ec)
|
||||||
|
{
|
||||||
|
TORRENT_ASSERT(!ec);
|
||||||
|
if (is_directory(old_path, ec))
|
||||||
|
{
|
||||||
|
create_directory(new_path, ec);
|
||||||
|
if (ec) return;
|
||||||
|
for (directory i(old_path, ec); !i.done(); i.next(ec))
|
||||||
|
{
|
||||||
|
std::string f = i.file();
|
||||||
|
if (f == ".." || f == ".") continue;
|
||||||
|
recursive_copy(combine_path(old_path, f), combine_path(new_path, f), ec);
|
||||||
|
if (ec) return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else if (!ec)
|
||||||
|
{
|
||||||
|
copy_file(old_path, new_path, ec);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
void copy_file(std::string const& inf, std::string const& newf, error_code& ec)
|
void copy_file(std::string const& inf, std::string const& newf, error_code& ec)
|
||||||
{
|
{
|
||||||
ec.clear();
|
ec.clear();
|
||||||
|
|
|
@ -115,42 +115,6 @@ namespace
|
||||||
|
|
||||||
namespace libtorrent
|
namespace libtorrent
|
||||||
{
|
{
|
||||||
|
|
||||||
void recursive_copy(std::string const& old_path, std::string const& new_path, error_code& ec)
|
|
||||||
{
|
|
||||||
TORRENT_ASSERT(!ec);
|
|
||||||
if (is_directory(old_path, ec))
|
|
||||||
{
|
|
||||||
create_directory(new_path, ec);
|
|
||||||
if (ec) return;
|
|
||||||
for (directory i(old_path, ec); !i.done(); i.next(ec))
|
|
||||||
{
|
|
||||||
std::string f = i.file();
|
|
||||||
recursive_copy(f, combine_path(new_path, f), ec);
|
|
||||||
if (ec) return;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else if (!ec)
|
|
||||||
{
|
|
||||||
copy_file(old_path, new_path, ec);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
void recursive_remove(std::string const& old_path)
|
|
||||||
{
|
|
||||||
error_code ec;
|
|
||||||
if (is_directory(old_path, ec))
|
|
||||||
{
|
|
||||||
for (directory i(old_path, ec); !i.done(); i.next(ec))
|
|
||||||
recursive_remove(combine_path(old_path, i.file()));
|
|
||||||
remove(old_path, ec);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
remove(old_path, ec);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
std::vector<std::pair<size_type, std::time_t> > get_filesizes(
|
std::vector<std::pair<size_type, std::time_t> > get_filesizes(
|
||||||
file_storage const& storage, std::string const& p)
|
file_storage const& storage, std::string const& p)
|
||||||
{
|
{
|
||||||
|
@ -835,7 +799,7 @@ namespace libtorrent
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
recursive_remove(old_path);
|
remove_all(old_path, ec);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue