Răsfoiți Sursa

When serializing to folder that doesn't exist, create it

Marko Pintera 11 ani în urmă
părinte
comite
092593384f
1 a modificat fișierele cu 5 adăugiri și 0 ștergeri
  1. 5 0
      BansheeUtility/Source/BsFileSerializer.cpp

+ 5 - 0
BansheeUtility/Source/BsFileSerializer.cpp

@@ -4,6 +4,7 @@
 #include "BsIReflectable.h"
 #include "BsIReflectable.h"
 #include "BsBinarySerializer.h"
 #include "BsBinarySerializer.h"
 #include "BsPath.h"
 #include "BsPath.h"
+#include "BsFileSystem.h"
 
 
 #include <numeric>
 #include <numeric>
 
 
@@ -23,6 +24,10 @@ namespace BansheeEngine
 
 
 	void FileSerializer::encode(IReflectable* object, const Path& fileLocation)
 	void FileSerializer::encode(IReflectable* object, const Path& fileLocation)
 	{
 	{
+		Path parentDir = fileLocation.getDirectory();
+		if (!FileSystem::exists(parentDir))
+			FileSystem::createDir(parentDir);
+
 		mOutputStream.open(fileLocation.toString().c_str(), std::ios::out | std::ios::binary);
 		mOutputStream.open(fileLocation.toString().c_str(), std::ios::out | std::ios::binary);
 
 
 		BinarySerializer bs;
 		BinarySerializer bs;