KDint xmBadaStat ( const KDchar* path, struct stat* buf ) { struct tm t; FileAttributes attr; DateTime dt; result r; r = File::GetAttributes ( path, attr ); if ( IsFailed ( r ) ) { goto failed; } dt = attr.GetLastModifiedTime ( ); t.tm_year = dt.GetYear ( ); t.tm_mon = dt.GetMonth ( ) - 1; t.tm_mday = dt.GetDay ( ); t.tm_hour = dt.GetHour ( ); t.tm_min = dt.GetMinute ( ); t.tm_sec = dt.GetSecond ( ); buf->st_mtime = mktime ( &t ); buf->st_mode = attr.IsDirectory ( ) ? 0x4000 : 0x8000; buf->st_size = attr.GetFileSize ( ); return 0; failed : xmBadaSetError ( r ); return -1; }
bool SimpleCache::GetFileForIndex(int index, ByteBuffer & data) { String filePath; BuildPathForFileInCache(index, filePath); if (!File::IsFileExist(filePath)) { return false; } AppLog("Reading data from cached file at %S", filePath.GetPointer()); File cachedFile; cachedFile.Construct(filePath, L"r+"); if (IsFailed(GetLastResult())) { AppLog("Error opening destination file in cache"); return false; } FileAttributes fAttributes; File::GetAttributes(filePath, fAttributes); data.Construct(fAttributes.GetFileSize()); cachedFile.Read(data); AppLog("Read cache: %d bytes", data.GetCapacity()); if (IsFailed(GetLastResult())) { AppLog("Error reading from cached file"); return false; } return true; }
ArrayListT<Trip *> * IRailAPI::testRoutePlanner(){ result r = E_SUCCESS; String fileName(L"/Home/2.xml"); File *file = new File(); FileAttributes sourcefilemeta; File::GetAttributes(fileName, sourcefilemeta); int filesize = sourcefilemeta.GetFileSize(); ByteBuffer buffer; buffer.Construct(filesize); //AppLog("Read buffer size %d", buffer.GetLimit()); r = file->Construct(fileName, L"r"); //for write: w or w+ r = file->Read(buffer); //to write: file->Write *beware of the permission w instead of r delete file; //closes the file, there is no default close method for files, its gets closed when its scope is closed buffer.SetPosition(0); ArrayListT<Trip *> * test = createTripList(&buffer); //AppLog("completed trips"); return test; }
ZLFileInfo ZLbadaFSManager::fileInfo(const std::string &path) const { AppLog("ZLbadaFSManager::fileInfo %s",path.c_str()); ZLFileInfo info; //struct stat fileStat; result r = E_SUCCESS; FileAttributes attr; Tizen::Base::String badaPath(path.c_str()); r = File::GetAttributes(badaPath, attr); //TODO if(IsFailed(r)) goto CATCH; //info.Exists = stat(path.c_str(), &fileStat) == 0; stat - не работает info.Exists = (r==E_SUCCESS); AppLog("ZLbadaFSManager::fileInfo r = %d", r); if (info.Exists) { info.Size = attr.GetFileSize();//fileStat.st_size; //AppLog("ZLbadaFSManager::fileInfo.Size %d",fileStat.st_size); AppLog("ZLbadaFSManager::fileInfo.Size %d",info.Size); //AppLog("ZLbadaFSManager::fileInfo.st_mode %x",fileStat.st_mode); info.IsDirectory = attr.IsDirectory();//S_ISDIR(fileStat.st_mode); if (info.IsDirectory) AppLog("ZLbadaFSManager::fileInfo.IsDirectory"); } return info; }
result CategoryItemForm::ReadCustomListItems() { result r = E_SUCCESS; String dirName(L"/Home/catalog/"+dir); Directory* pDir; DirEnumerator* pDirEnum; pDir = new Directory; // allocate Directory instance // Open directory r = pDir->Construct(dirName); // Read all directory entries pDirEnum = pDir->ReadN(); String contentType; int i = 0; while(pDirEnum->MoveNext() == E_SUCCESS) { DirEntry dirEntry = pDirEnum->GetCurrentDirEntry(); if(dirEntry.IsNomalFile()) { //AppLog("%S", dirEntry.GetName().GetPointer()); if(!dirEntry.GetName().Equals("category.info", false)) { String fileName(dirName+"/"+dirEntry.GetName()); String title, desc; String iTempStr, iTempStr2; File file; result r = file.Construct(fileName, L"r"); if( IsFailed(r) ) { AppLog("File::Consturct() is failed by %s", GetErrorMessage(r)); } FileAttributes fileAttrs; file.GetAttributes(fileName, fileAttrs); long long size = fileAttrs.GetFileSize(); ByteBuffer readBuffer; readBuffer.Construct((int)size + 1); r = file.Read(readBuffer); if( IsFailed(r) ) { AppLog("File::Read() is failed by %s", GetErrorMessage(r)); } char* data = new char[readBuffer.GetLimit()+1]; readBuffer.SetPosition(0); readBuffer.GetArray((byte*)data, 0, readBuffer.GetLimit()); data[readBuffer.GetLimit()] ='\0'; //String str = String(data); String str; r = StringUtil::Utf8ToString(data, str); delete data; if(IsFailed(r)) { AppLog("File read error. File : %S", fileName.GetPointer()); continue; } file.Seek(FILESEEKPOSITION_BEGIN, 0); file.Read(title); r = TextPic::GetTranslated(title); if (IsFailed(r)) { continue; } int linecount = 0; while(file.Read(iTempStr) != E_END_OF_FILE) { linecount++; iTempStr2.Append(iTempStr); } anciilist.Add(*(new String(iTempStr2))); titlelist.Add(*(new String(title))); filelist.Add(*(new String(fileName))); ItemListForm::AddListItem(*CategoryList, title, iTempStr2, i++, linecount); file.Flush(); } } } delete pDirEnum; delete pDir; return r; }