안드로이드 개발 질문/답변
(글 수 45,052)
상태를 저장하려고 파일생성을 하여 쓰려고 하는데
어떻게 해야 하는지 잘 모르겠습니다
std::string path = CCFileUtils::getWriteablePath();
path.append(fname);
를 써서 경로를 얻어오는 것까지는 이 게시판에서 확인할 수 있었습니다만.
그 이후에 어떻게 파일을 쓸 수 있는지 궁금합니다.
fopen을 쓰면 안드로이드에서는 열리지 않는다고 하고.ㅠㅠ
2012.04.28 19:23:24
자체 해결했습니다.
std::string path = CCFileUtils::getWriteablePath();
path.append(fname);
m_fp = fopen(path.c_str(), sz);
로 해도 안드로이드에서 잘만 열립니다. ㅋ
2012.08.21 15:49:27
저는 리소스 파일이냐 자기가 생성한 파일이냐에 따라서 다르게 처리했었습니다.
if ( location == kRes ) {
const char* path = NULL;
path = CCFileUtils::fullPathFromRelativePath(fname);
CCFileData data(path, sz);
m_size = data.getSize();
m_state = kRead;
if (m_size > 0) {
m_buffer = new unsigned char[m_size + 1];
m_buffer[m_size] = 0;
m_pos = 0;
memcpy(m_buffer, data.getBuffer(), m_size);
return true;
}
}
else {
std::string path = CCFileUtils::getWriteablePath();
path.append(fname);
FILE *fp = fopen(path.c_str(), sz);
if ( fp == NULL ) return false;
else {
fseek(fp, 0, SEEK_END);
m_size = ftell(fp);
fseek(fp, 0, SEEK_SET);
m_state = kRead;
if ( m_size > 0 ) {
m_buffer = new unsigned char[m_size + 1];
m_buffer[m_size] = 0;
m_pos = 0;
fread(m_buffer, m_size, 1, fp);
return true;
}
}
}



CCFileUtils::getFileData 이걸로 하셔야 됩니다.