Lines Matching refs:pDir

53 int rtDirNativeOpen(PRTDIR pDir, char *pszPathBuf)
64 if (pDir->enmFilter == RTDIRFILTER_WINNT)
66 pszExpr = pDir->pszFilter;
67 cbExpr = pDir->cchFilter + 1;
74 if (pDir->cchPath + cbExpr > RTPATH_MAX)
76 memcpy(pszPathBuf + pDir->cchPath, pszExpr, cbExpr);
87 pDir->hDir = FindFirstFileW((LPCWSTR)pwszName, &pDir->Data);
88 if (pDir->hDir != INVALID_HANDLE_VALUE)
89 pDir->fDataUnread = true;
96 pDir->fDataUnread = false;
107 RTDECL(int) RTDirClose(PRTDIR pDir)
112 if (!pDir)
114 if (pDir->u32Magic != RTDIR_MAGIC)
116 AssertMsgFailed(("Invalid pDir=%p\n", pDir));
123 pDir->u32Magic++;
124 if (pDir->hDir != INVALID_HANDLE_VALUE)
126 BOOL fRc = FindClose(pDir->hDir);
128 pDir->hDir = INVALID_HANDLE_VALUE;
130 RTStrFree(pDir->pszName);
131 pDir->pszName = NULL;
132 RTMemFree(pDir);
138 RTDECL(int) RTDirRead(PRTDIR pDir, PRTDIRENTRY pDirEntry, size_t *pcbDirEntry)
143 if (!pDir || pDir->u32Magic != RTDIR_MAGIC)
145 AssertMsgFailed(("Invalid pDir=%p\n", pDir));
167 if (!pDir->fDataUnread)
169 RTStrFree(pDir->pszName);
170 pDir->pszName = NULL;
172 BOOL fRc = FindNextFileW(pDir->hDir, &pDir->Data);
176 if (pDir->hDir == INVALID_HANDLE_VALUE || iErr == ERROR_NO_MORE_FILES)
185 if (!pDir->pszName)
187 int rc = RTUtf16ToUtf8((PCRTUTF16)pDir->Data.cFileName, &pDir->pszName);
190 pDir->pszName = NULL;
193 pDir->cchName = strlen(pDir->pszName);
199 const char *pszName = pDir->pszName;
200 const size_t cchName = pDir->cchName;
210 pDir->fDataUnread = false;
212 pDirEntry->enmType = pDir->Data.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY
222 RTDECL(int) RTDirReadEx(PRTDIR pDir, PRTDIRENTRYEX pDirEntry, size_t *pcbDirEntry, RTFSOBJATTRADD enmAdditionalAttribs, uint32_t fFlags)
229 if (!pDir || pDir->u32Magic != RTDIR_MAGIC)
231 AssertMsgFailed(("Invalid pDir=%p\n", pDir));
260 if (!pDir->fDataUnread)
262 RTStrFree(pDir->pszName);
263 pDir->pszName = NULL;
265 BOOL fRc = FindNextFileW(pDir->hDir, &pDir->Data);
269 if (pDir->hDir == INVALID_HANDLE_VALUE || iErr == ERROR_NO_MORE_FILES)
278 if (!pDir->pszName)
280 int rc = RTUtf16ToUtf8((PCRTUTF16)pDir->Data.cFileName, &pDir->pszName);
283 pDir->pszName = NULL;
286 pDir->cchName = strlen(pDir->pszName);
292 const char *pszName = pDir->pszName;
293 const size_t cchName = pDir->cchName;
303 pDir->fDataUnread = false;
307 if (pDir->Data.cAlternateFileName[0])
310 PCRTUTF16 pwszSrc = (PCRTUTF16)pDir->Data.cAlternateFileName;
331 pDirEntry->Info.cbObject = ((uint64_t)pDir->Data.nFileSizeHigh << 32)
332 | (uint64_t)pDir->Data.nFileSizeLow;
335 Assert(sizeof(uint64_t) == sizeof(pDir->Data.ftCreationTime));
336 RTTimeSpecSetNtTime(&pDirEntry->Info.BirthTime, *(uint64_t *)&pDir->Data.ftCreationTime);
337 RTTimeSpecSetNtTime(&pDirEntry->Info.AccessTime, *(uint64_t *)&pDir->Data.ftLastAccessTime);
338 RTTimeSpecSetNtTime(&pDirEntry->Info.ModificationTime, *(uint64_t *)&pDir->Data.ftLastWriteTime);
341 pDirEntry->Info.Attr.fMode = rtFsModeFromDos((pDir->Data.dwFileAttributes << RTFS_DOS_SHIFT) & RTFS_DOS_MASK_NT,