static void OutputArrayValues(parsercontext *p, const tchar_t *name, tchar_t *values[], size_t size) { tchar_t Path[MAXPATH]; tchar_t Value[MAXPATH]; textwriter Output, StringOutput; size_t i; stprintf_s(Value, TSIZEOF(Value), T("res_%s"), name); for (i=0; i<size; ++i) { stprintf_s(Path, TSIZEOF(Path), T("values-%s"), values[i]); FolderCreate((nodecontext*)p, Path); if (PathIsFolder((nodecontext*)p, Path)) { tcscat_s(Path, TSIZEOF(Path), T("/resinfo.xml")); memset(&Output,0,sizeof(Output)); Output.Stream = StreamOpen(p, Path, SFLAG_WRONLY|SFLAG_CREATE); TextElementXML(p, &Output, T("resources")); TextElementBegin(&StringOutput, &Output, T("string")); TextAttrib(&StringOutput, T("name"), Value, TYPE_STRING); TcsToUpper(Path, TSIZEOF(Path), values[i]); TextElementEndData(&StringOutput, Path); TextElementEnd(&Output); StreamClose(Output.Stream); } } }
bool FileSystem::FileMove(const String& source, const String& dest) const { String destFolder = GetParentPath(dest); if (!IsFolderExist(destFolder)) FolderCreate(destFolder); return MoveFileA(source.Data(), dest.Data()) == TRUE; }
bool FileSystem::FolderCreate(const String& path, bool recursive /*= true*/) const { if (IsFolderExist(path)) return true; if (!recursive) return CreateDirectoryA(path.Data(), NULL) == TRUE; if (CreateDirectoryA(path.Data(), NULL) == TRUE) return true; String extrPath = ExtractPathStr(path); if (extrPath == path) return false; return FolderCreate(extrPath, true); }
bool FileSystem::FileCopy(const String& source, const String& dest) const { FileDelete(dest); FolderCreate(ExtractPathStr(dest)); return CopyFileA(source.Data(), dest.Data(), TRUE) == TRUE; }
static void OutputValues(parsercontext *p, size_t size, size_t night, size_t density, size_t touchscreen, size_t keyboard, size_t textinput, size_t navstate, size_t navmethod) { tchar_t Path[MAXPATH]; textwriter Output, StringOutput; stprintf_s(Path, TSIZEOF(Path), T("values") T("-%s") // T("-%s") T("-%s") // T("-%s") // T("-%s") // T("-%s") // T("-%s") // T("-%s") ,Size[size] // ,Night[night] ,Density[density] // ,TouchScreen[touchscreen] // ,Keyboard[keyboard] // ,TextInput[textinput] // ,NavigationState[navstate] // ,NavigationMethod[navmethod] ); FolderCreate((nodecontext*)p, Path); if (PathIsFolder((nodecontext*)p, Path)) { tcscat_s(Path, TSIZEOF(Path), T("/resinfo.xml")); memset(&Output,0,sizeof(Output)); Output.Stream = StreamOpen(p, Path, SFLAG_WRONLY|SFLAG_CREATE); TextElementXML(p, &Output, T("resources")); TextElementBegin(&StringOutput, &Output, T("string")); TextAttrib(&StringOutput, T("name"), T("res_size"), TYPE_STRING); TcsToUpper(Path, TSIZEOF(Path), Size[size]); TextElementEndData(&StringOutput, Path); TextElementBegin(&StringOutput, &Output, T("string")); TextAttrib(&StringOutput, T("name"), T("res_night"), TYPE_STRING); TcsToUpper(Path, TSIZEOF(Path), Night[night]); TextElementEndData(&StringOutput, Path); TextElementBegin(&StringOutput, &Output, T("string")); TextAttrib(&StringOutput, T("name"), T("res_density"), TYPE_STRING); TcsToUpper(Path, TSIZEOF(Path), Density[density]); TextElementEndData(&StringOutput, Path); TextElementBegin(&StringOutput, &Output, T("string")); TextAttrib(&StringOutput, T("name"), T("res_touchscreen"), TYPE_STRING); TcsToUpper(Path, TSIZEOF(Path), TouchScreen[touchscreen]); TextElementEndData(&StringOutput, Path); TextElementBegin(&StringOutput, &Output, T("string")); TextAttrib(&StringOutput, T("name"), T("res_keyboard"), TYPE_STRING); TcsToUpper(Path, TSIZEOF(Path), Keyboard[keyboard]); TextElementEndData(&StringOutput, Path); TextElementBegin(&StringOutput, &Output, T("string")); TextAttrib(&StringOutput, T("name"), T("res_textinput"), TYPE_STRING); TcsToUpper(Path, TSIZEOF(Path), TextInput[textinput]); TextElementEndData(&StringOutput, Path); TextElementBegin(&StringOutput, &Output, T("string")); TextAttrib(&StringOutput, T("name"), T("res_navstate"), TYPE_STRING); TcsToUpper(Path, TSIZEOF(Path), NavigationState[navstate]); TextElementEndData(&StringOutput, Path); TextElementBegin(&StringOutput, &Output, T("string")); TextAttrib(&StringOutput, T("name"), T("res_navmethod"), TYPE_STRING); TcsToUpper(Path, TSIZEOF(Path), NavigationMethod[navmethod]); TextElementEndData(&StringOutput, Path); TextElementEnd(&Output); StreamClose(Output.Stream); } }