Титульная страница Иерархия классов Алфавитный указатель Классы Файлы Члены классов Члены файла Примеры

# NetworkDrive.cpp

Пример использования классов NetworkDrive, NetworkDrives, Directory, String, Exception. Данный пример демонстрирует простейшую программу, которая выводит на консоль содержимое заданного сетевого диска.

    #include <stdio.h>
    #include "BGDNet.h"

    using BGDNet::NetworkDrive;
    using BGDNet::NetworkDrives;
    using BGDNet::Directory;
    using BGDNet::Exception;

    bool checkDrive( const NetworkDrive* pDrv );

    int main( int argc, char* argv[] )
    {
      if (argc > 2)
      {
        puts("Usage: NetworkDrive.exe [<drive_letter>]");
        return -1;
      }

      char letter = (1 == argc) ? 0 : *argv[1];

      try
      {
        if (letter)
        {
          // Задана буква, проверяем диск:
          NetworkDrive drv(letter);
          if (!checkDrive(&drv))
            printf("%c: invalid drive\n", letter);
        }
        else
        {
          // Буква не задана, выводим все сетевые диски:
          NetworkDrives drvs;
          for (int i = 0; i < drvs.count(); ++i)
            checkDrive(drvs[i]);
        }
      }
      catch (const Exception& e)
      {
        printf("ERROR: %s\n", e.what());
      }
      puts("----------");

      return 0;
    }

    bool checkDrive( const NetworkDrive* pDrv )
    {
      const Directory* pDir = pDrv->mappedDir();
      if (!pDir)
        return false;
      else
      {
        printf("%c --> %s\n", pDrv->drvLetter(), pDir->fullPath().ptr());
        return true;
      }
    }