summaryrefslogtreecommitdiff
path: root/src/utils/files.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/utils/files.cpp')
-rw-r--r--src/utils/files.cpp29
1 files changed, 29 insertions, 0 deletions
diff --git a/src/utils/files.cpp b/src/utils/files.cpp
index c06b3d892..fa69cd6af 100644
--- a/src/utils/files.cpp
+++ b/src/utils/files.cpp
@@ -100,4 +100,33 @@ void Files::extractZip(const std::string &zipName, const std::string &inDir,
remove(zipName.c_str());
}
+int Files::renameFile(const std::string &pFrom, const std::string &pTo)
+{
+ FILE *file = fopen(pFrom.c_str(), "rb");
+ if (file == NULL)
+ return -1;
+
+ fseek(file, 0, SEEK_END);
+ size_t sz = ftell(file);
+ fseek(file, 0, SEEK_SET);
+
+ char *buf = (char *)malloc(sz + 1);
+ if (fread(buf, 1, sz, file) != sz)
+ return -1;
+ fclose(file);
+ buf[sz] = 0;
+
+ file = fopen(pTo.c_str(), "w+b");
+ if (file == NULL)
+ return -1;
+
+ if (fwrite(buf, 1, sz, file) != sz)
+ return -1;
+ fclose(file);
+
+ free(buf);
+
+ return 0;
+}
+
#endif // ANDROID __native_client__