Пример использования классов Server, Volume, Volumes, Directory, Directories, Path, Exception. Данный пример демонстрирует простейшую программу, которая выводит на консоль дерево подкаталогов сервера, тома либо каталога.
#include <stdio.h> #include <memory.h> #include "BGDNet.h" using BGDNet::Server; using BGDNet::Volume; using BGDNet::Volumes; using BGDNet::Directory; using BGDNet::Directories; using BGDNet::Path; using BGDNet::Exception; void srvTree( const Server* pSrv ); void volTree( const Volume* pVol ); void dirTree( const Directory* pDir, int level = 0 ); int main( int argc, char* argv[] ) { if (argc < 2) { puts("Usage: DirTree.exe <server_name> [<volume_name> [<dir_path>]]"); return -1; } try { Server srv(argv[1]); if (2 == argc) srvTree(&srv); // Выводим содержимое всего сервера else { Volume vol(&srv, argv[2]); if (3 == argc) volTree(&vol); // Выводим содержимое тома на сервере else { // Выводим содержимое каталога Directory dir(&vol, Path(argv[3], NW_NS_LONG)); dirTree(&dir); } } } catch (const Exception& e) { printf("ERROR: %s\n", e.what()); } puts("----------"); return 0; } void srvTree( const Server* pSrv ) { printf("Server %s:\n", (const char*)pSrv->name()); puts("---------------"); Volumes vlms; pSrv->getVolumes(&vlms); for (int i = 0; i < vlms.size(); ++i) volTree(vlms[i]); } void volTree( const Volume* pVol ) { printf(" Volume %s:\n", (const char*)pVol->name()); puts(" ---------------"); dirTree(pVol->root(), 2); } void dirTree( const Directory* pDir, int level ) { const int MAX_LEVEL = 50; if (level < MAX_LEVEL) { char buf[MAX_LEVEL + 1]; memset(buf, ' ', level); buf[level] = '\0'; Directories dirs; pDir->getSubdirs(&dirs); for (int i = 0; i < dirs.size(); ++i) { const Directory* pSubDir = dirs[i]; printf("%s%s\n", buf, (const char*)pSubDir->name()); dirTree(pSubDir, level + 1); } } }
Документация на BGDNet сгенерирована Mon Apr 1 18:36:52 2002, БЕЛГИПРОДОР © 2001