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

  • Dopelives

    Dopelives

    30 Temmuz 2009
  • jesiel santos

    jesiel santo

    15 Ocak 2009
  • monkophile

    monkophile

    25 Temmuz 2007