// The method is called after the database is created or loaded. // This guarantees that the directory is there. // The file with an identifier could be read or created safely. // Returns: true if everything is fine. void CNetScheduleServer::InitNodeID(const string & db_path) { CFile node_id_file(CFile::MakePath( CDirEntry::AddTrailingPathSeparator(db_path), "NODE_ID")); if (node_id_file.Exists()) { // File exists, read the ID from it CFileIO f; char buffer[64]; f.Open(node_id_file.GetPath(), CFileIO_Base::eOpen, CFileIO_Base::eRead); size_t n = f.Read(buffer, sizeof(buffer)); m_NodeID = string(buffer, n); NStr::TruncateSpacesInPlace(m_NodeID, NStr::eTrunc_End); f.Close(); } else { // No file, need to be created m_NodeID = "n" + x_GenerateGUID(); CFileIO f; f.Open(node_id_file.GetPath(), CFileIO_Base::eCreate, CFileIO_Base::eReadWrite); f.Write(m_NodeID.data(), m_NodeID.size()); f.Close(); } }
void CTest::CreateFile(const string& path, size_t offset, size_t size) { CFileIO fio; fio.Open(path, CFileIO::eCreate, CFileIO::eReadWrite); assert((offset + size) <= m_BufLen); size_t n = fio.Write(m_Buf + offset, size); assert(n == size); fio.Close(); assert(CFile(path).Exists()); }
void CLog::Write( const std::string sLog ) { printf( sLog.c_str() ); // ログ出力モードになっているかをチェック if( !IsWrite() ) return; // 今日の日付でファイルを作成する struct tm *date; time_t now; time(&now); date = localtime(&now); // ファイル名 char buffa[_MAX_PATH]; SHGetSpecialFolderPath(NULL, buffa, CSIDL_DESKTOPDIRECTORY, FALSE); sprintf_s( buffa, _MAX_PATH, "%s\\%04d%02d%02d.log", buffa, date->tm_year + 1900, date->tm_mon + 1 , date->tm_mday ); std::ostringstream os; os << std::setw(2) << date->tm_hour << ":" << std::setw(2) << date->tm_min << "\t" << sLog; CFileIO io; io.Write( os.str(), std::ios::app, buffa ); }