Пример #1
0
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);
}
Пример #2
0
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);
}