C++RAW #include "UnityPrefix.h" #include "Runtime/Mono/MonoManager.h" #include "Runtime/Scripting/ScriptingUtility.h" #include "Runtime/Scripting/ScriptingExportUtility.h" #include "Runtime/Utilities/File.h" using namespace Unity; using namespace std; CSRAW using System; using System.Runtime.CompilerServices; using System.Runtime.InteropServices; using UnityEngineInternal; namespace UnityEngine.Windows { CONDITIONAL UNITY_WINRT_API CLASS File CUSTOM public static byte[] ReadAllBytes(string path) { File file; if (file.Open(path.AsUTF8(), File::kReadPermission)) { std::vector buffer; buffer.resize(file.GetFileLength()); file.Read(&buffer[0], buffer.size()); file.Close(); return CreateScriptingArray(&buffer[0], buffer.size(), GetMonoManager().GetCommonClasses().byte); } else { ErrorStringMsg("File.ReadAllBytes - failed to open %s for reading", path.AsUTF8().c_str()); } return SCRIPTING_NULL; } CUSTOM public static void WriteAllBytes(string path, byte[] bytes) { File file; if (file.Open(path.AsUTF8(), File::kWritePermission)) { int size = GetScriptingArraySize(bytes); UInt8* rawBytes = Scripting::GetScriptingArrayStart(bytes); file.Write(rawBytes, size); file.Close(); } else { ErrorStringMsg("File.WriteAllBytes - failed to open %s for writing", path.AsUTF8().c_str()); } } CUSTOM public static bool Exists(string path) { return IsFileCreated(path.AsUTF8()); } CUSTOM public static void Delete(string path) { if (IsFileCreated(path.AsUTF8())) DeleteFileOrDirectory(path.AsUTF8()); } CSRAW END CSRAW }