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

# ChangeOwner.cpp

Пример использования классов File, Path, Context, NDSObject, String, Exception. Данный пример демонстрирует простейшую программу, которая позволяет получить и изменить владельца файла.

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

    using BGDNet::Path;
    using BGDNet::Server;
    using BGDNet::Volume;
    using BGDNet::File;
    using BGDNet::Context;
    using BGDNet::NDSObject;
    using BGDNet::String;
    using BGDNet::Exception;

    void printOwner( const File& f );

    int main( int argc, char* argv[] )
    {
      if (2 != argc && 3 != argc)
      {
        puts("Usage: ChangeOwner.exe <file> [<owner>]");
        return -1;
      }

      try
      {
        Path p(argv[1], NW_NS_LONG);
        Server srv(p.srv());
        Volume vol(&srv, p.vol());
        nuint8 ns = vol.supportsLongNames() ? NW_NS_LONG : NW_NS_DOS;
        File f(&vol, Path(p.path(), ns));

        printOwner(f);

        if (3 == argc)
        {
          Context ctx;
          printf("\nChanging owner to: %s\n\n", argv[2]);
          f.ownerName(ctx, argv[2]);
          printOwner(f);
        }
      }
      catch (const Exception& e)
      {
        printf("ERROR: %s\n", e.what());
      }
      puts("----------");

      return 0;
    }

    void printOwner( const File& f )
    {
      Context ctx;
      printf(
        "File: %s\nOwner: %s\n",
        f.fullPath().ptr(),
        f.ownerName(ctx).ptr());
    }