bool UDirWalk::setDirectory(const UString& dir, const char* _filter, uint32_t _filter_len) { U_TRACE(0, "UDirWalk::setDirectory(%.*S,%.*S,%u)", U_STRING_TO_TRACE(dir), _filter_len, _filter, _filter_len) pthis->pathlen = dir.size(); const char* pdir = u_getPathRelativ(dir.data(), &(pthis->pathlen)); U_INTERNAL_ASSERT_MAJOR(pthis->pathlen, 0) U_MEMCPY(pthis->pathname, pdir, pthis->pathlen); pthis->pathname[pthis->pathlen] = '\0'; if (UFile::access(pthis->pathname) == false) { pthis->pathlen = 0; U_RETURN(false); } setFilter(_filter, _filter_len); U_RETURN(true); }
bool UDirWalk::setDirectory(const char* dir, const char* _filter, uint32_t _filter_len) { U_TRACE(0, "UDirWalk::setDirectory(%S,%.*S,%u", dir, _filter_len, _filter, _filter_len) pthis->pathlen = u__strlen(dir, __PRETTY_FUNCTION__); dir = u_getPathRelativ(dir, &(pthis->pathlen)); U_INTERNAL_ASSERT_MAJOR(pthis->pathlen, 0) if (UFile::access(dir) == false) { pthis->pathlen = 0; U_RETURN(false); } U__MEMCPY(pthis->pathname, dir, pthis->pathlen); pthis->pathname[pthis->pathlen] = '\0'; if (_filter_len) { filter = _filter; filter_len = _filter_len; u_pfn_flags = 0; u_pfn_match = u_dosmatch_with_OR; } U_RETURN(true); }