From 567bd9471bf7061cf92061f3569f76e260be9c50 Mon Sep 17 00:00:00 2001 From: "FWoltermann@gmail.com" Date: Fri, 8 Jun 2012 16:48:28 +0000 Subject: Ooops, stupid mistake here. --- Datafile/Archive.cpp | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) (limited to 'Datafile/Archive.cpp') diff --git a/Datafile/Archive.cpp b/Datafile/Archive.cpp index 039fbb1..9d47465 100644 --- a/Datafile/Archive.cpp +++ b/Datafile/Archive.cpp @@ -406,8 +406,10 @@ void DataArchive::Extract(const char* name) ExpandEntry(index, buf); std::string dirname = directory[index].name; + bool create_subdir = (dirname.find_first_of('/', 0) != std::string::npos); std::wstring wdirname = ToWideString(dirname.substr(0, dirname.find_first_of('/'))); - CreateDirectory(wdirname.c_str(), NULL); + if (create_subdir) + CreateDirectory(wdirname.c_str(), NULL); size_t offset = wdirname.length(); while (dirname.find_first_of('/', offset + 1) != std::string::npos) { wdirname.push_back('/'); @@ -416,7 +418,7 @@ void DataArchive::Extract(const char* name) offset = wdirname.length(); } - FILE* f = fopen(directory[index].name, "wb"); + FILE* f = fopen(directory[index].name, "w+b"); if (f) { fwrite(buf, directory[index].size_orig, 1, f); fclose(f); -- cgit v1.1