OutputStreamPtr Directory::OpenWrite(const String& fileName, bool append) { String path; MultiStringHelper pathsL(paths); MultiStringHelper::Iterator it = pathsL.Iterate(); while (it.HasNext(path)) { OutputStreamPtr ptr = OpenWrite(path, fileName, append); if (ptr) return ptr; } return OutputStreamPtr(); }
Log::Log() { fichier = OutputStreamPtr(new std::ofstream(FICHIER, std::ios::in | std::ios::app)); if(fichier->good()) *fichier << "##################################################" << std::endl << Utile::dateActuelle() << std::endl << std::endl; else Utile::erreur("initialiserLog()", "Impossible d'ouvrir le fichier BattleStar.log"); }
OutputStreamPtr Directory::OpenWrite(const String& path, const String& filename, bool append) { String fullpath = URL::GetAppendedPath(path, filename); std::FILE* file = 0; #if NEX_LINUX == 1 file = std::fopen(fullpath.c_str(), append ? "ab" : "wb"); #elif NEX_WINDOWS == 1 FOPEN_W(file, StringUtils::ToUtf16(fullpath).c_str(), append ? L"ab" : L"wb"); #else #error no standard way to open files? #endif if (!file) { return OutputStreamPtr(); } FileOutputStream* ptr = NEX_NEW( FileOutputStream(file, static_cast<uint32>(Constants::INVALID_SIZE))); return Assign<OutputStream>(ptr); }