mirror of https://github.com/aria2/aria2
2010-10-12 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net>
Rewritten File::mkdirs() * src/File.ccpull/1/head
parent
119b9a8448
commit
1a13d35406
|
@ -1,3 +1,8 @@
|
||||||
|
2010-10-12 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net>
|
||||||
|
|
||||||
|
Rewritten File::mkdirs()
|
||||||
|
* src/File.cc
|
||||||
|
|
||||||
2010-10-11 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net>
|
2010-10-11 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net>
|
||||||
|
|
||||||
Use RFC1123 date format in debug log of MDTM response and
|
Use RFC1123 date format in debug log of MDTM response and
|
||||||
|
|
29
src/File.cc
29
src/File.cc
|
@ -105,23 +105,22 @@ bool File::mkdirs() {
|
||||||
if(isDir()) {
|
if(isDir()) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
std::vector<std::string> dirs;
|
for(std::string::iterator i = name_.begin(), eoi = name_.end();
|
||||||
util::split(name_, std::back_inserter(dirs), "/");
|
i != eoi;) {
|
||||||
if(!dirs.size()) {
|
std::string::iterator j = std::find(i, eoi, '/');
|
||||||
return true;
|
if(std::distance(i, j) == 0) {
|
||||||
}
|
++i;
|
||||||
|
|
||||||
std::string accDir;
|
|
||||||
if(util::startsWith(name_, A2STR::SLASH_C)) {
|
|
||||||
accDir = A2STR::SLASH_C;
|
|
||||||
}
|
|
||||||
for(std::vector<std::string>::const_iterator itr = dirs.begin(),
|
|
||||||
eoi = dirs.end(); itr != eoi; ++itr, accDir += A2STR::SLASH_C) {
|
|
||||||
accDir += *itr;
|
|
||||||
if(File(accDir).isDir()) {
|
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
if(a2mkdir(accDir.c_str(), DIR_OPEN_MODE) == -1) {
|
i = j;
|
||||||
|
if(j != eoi) {
|
||||||
|
++i;
|
||||||
|
}
|
||||||
|
std::string dir = std::string(name_.begin(), j);
|
||||||
|
if(File(dir).isDir()) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
if(a2mkdir(dir.c_str(), DIR_OPEN_MODE) == -1) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue