SORU
15 EYLÜL 2008, PAZARTESİ


Nasıl her dosya/dizin standart C ardışık yineleme musunuz ?

Nasıl her dosya/dizin standart C ardışık yineleme musunuz ?

CEVAP
15 EYLÜL 2008, PAZARTESİ


Standart C , teknik olarak standart C dizinler diye bir kavram vardır beri bunu yapmak için bir yol yoktur. Eğer senin net biraz genişletmek, Boost.FileSystem kullanarak bakmak isteyebilirsiniz. Bu, bu uygulama standart için mümkün olduğunca yakın tutmak için en iyi şans verir yani TR2, eklenmesi için kabul edilmiştir.

Bir örnek, direk internet sitesinden alınmıştır:

bool find_file( const path & dir_path,         // in this directory,
                const std::string & file_name, // search for this name,
                path & path_found )            // placing path here if found
{
  if ( !exists( dir_path ) ) return false;
  directory_iterator end_itr; // default construction yields past-the-end
  for ( directory_iterator itr( dir_path );
        itr != end_itr;
          itr )
  {
    if ( is_directory(itr->status()) )
    {
      if ( find_file( itr->path(), file_name, path_found ) ) return true;
    }
    else if ( itr->leaf() == file_name ) // see below
    {
      path_found = itr->path();
      return true;
    }
  }
  return false;
}

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • DudeFromUkraine

    DudeFromUkra

    7 Ocak 2008
  • Hak5

    Hak5

    7 EYLÜL 2005
  • jonathepianist

    jonathepiani

    31 Temmuz 2008