//============================================================== void *_MmFileLoadB(const char *file, int area) //-------------------------------------------------------------- // malloc して読み込む // ※ブロックタイプ //-------------------------------------------------------------- // in: file = ファイル名 // area = 読み込みエリア //-------------------------------------------------------------- // out: 読み込みアドレス //============================================================== { sFILE *fp; size_t len; void *p; fp = FsOpen(file); ASSERT(fp); len = FsGetSizeOrig(fp); p = MemMalloc(area, len, GetFileBaseName(file)); ASSERT(p); FsRead(fp, p, len); FsClose(fp); mn_read_size = len; // FIXME:実ファイルサイズを返すべきか? // PRINTF("File '%s' Loaded.(%d bytes)\n", file, len); return p; }
//============================================================== void MakeBackupFile(const char *fname) //-------------------------------------------------------------- // PATH_BACKUP にバックアップをとる //-------------------------------------------------------------- // in: file = バックアップを取るファイル名 //-------------------------------------------------------------- // out: なし //============================================================== { char d_name[FNAME_MAXLEN]; void *tmp_buf; sFILE *fd_src, *fd_dst; size_t len, size; // オリジナルのファイルを開く //---------------------------- fd_src = FsOpen(fname); if(!fd_src) { return; } // バックアップファイルの作成 //---------------------------- sprintf(d_name, PATH_BACKUP"/%s.%s", GetFileBaseName(fname), StrMakeUniqueName()); fd_dst = FsCreate(d_name); if (!fd_dst) { FsClose(fd_src); return; } // 作業バッファを確保 //-------------------- tmp_buf = devMalloc(TMPBUF_LEN, "MakeBackupFile"); len = FsGetSizeOrig(fd_src); while(len) { size = (len >= TMPBUF_LEN) ? TMPBUF_LEN : len; FsRead(fd_src, tmp_buf, size); FsWrite(fd_dst, tmp_buf, size); len -= size; } FsClose(fd_src); FsClose(fd_dst); Free(tmp_buf); // SYSINFODSP("Make Backup file"); // SYSINFODSP("%s", MSG_FILE(d_name)); // SYSINFO("Make Backup file"); // SYSINFO("%s", MSG_FILE(d_name)); // SYSINFOCNS("Make Backup file"); // SYSINFOCNS("%s", MSG_FILE(d_name)); }
/// ファイル名の拡張子の取得. ※ 結果の文字列には'.'は含まれない CString GetFileExt(const CString& file) { CString strBase = GetFileBaseName(file); int n = strBase.ReverseFind(_T('.')); if (n == -1) return strBase; return strBase.Mid(n + 1); }
// // Call the superclass method and then install a default file name // based on the name of the network associated with our editor. // void PrintProgramDialog::manage() { this->Dialog::manage(); Network *n = this->editor->getNetwork(); const char *file = n->getFileName(); if (file) { char *fileA = GetFileBaseName(file,".net"); char *fileB = new char[STRLEN(fileA) + 4]; sprintf(fileB, "%s.ps",fileA); delete fileA; this->setFileName(fileB); delete fileB; } this->setSensitivity(); }
string CFileCode::GetUserFileBaseName(void) const { return GetFileBaseName(); }
string CFileCode::GetBaseFileBaseName(void) const { _ASSERT(BaseName(GetFileBaseName()).size() + 5 <= MAX_FILE_NAME_LENGTH); return GetFileBaseName() + "_"; }
const string& CFileCode::ChangeFileBaseName(void) { m_BaseName += "x"; return GetFileBaseName(); }