Сборник часто задаваемых вопросов по программированию в среде Borland C++ Builder

Реставрация Митсубиси кузовной ремонт на Митсубиси.            

Как узнать размер свободного места на сетевом диске, если путь к файлу указан как сетевой \\comp\folder\?



Вопрос: Как узнать размер свободного места на сетевом диске, если путь к файлу указан как сетевой \\comp\folder\?

Ответ : На основе примера из SDK узнать количество свободного места на диске можно так: code: -------------------------------------------------------------------------------- void __fastcall TForm1::Button1Click(TObject *Sender) { __int64 i64FreeBytesToCaller,i64TotalBytes,i64FreeBytes; unsigned long dwSectPerClust,dwBytesPerSect,dwFreeClusters,dwTotalClusters; int fResult; typedef int (__stdcall *Ptr)(char *,PULARGE_INTEGER,PULARGE_INTEGER,PULARGE_INTEGER); Ptr pGetDiskFreeSpaceEx; char *pszDrive=Edit1->Text.c_str(); //Директория "//aaa/bbb/" или "C:\" pGetDiskFreeSpaceEx =(Ptr)GetProcAddress( GetModuleHandle("kernel32.dll"), "GetDiskFreeSpaceExA"); if (pGetDiskFreeSpaceEx) { fResult = pGetDiskFreeSpaceEx (pszDrive, (PULARGE_INTEGER)&i64FreeBytesToCaller, (PULARGE_INTEGER)&i64TotalBytes, (PULARGE_INTEGER)&i64FreeBytes); if(!fResult)return; // Process GetDiskFreeSpaceEx results. Memo1->Lines->Add(Edit1->Text); Memo1->Lines->Add("FreeBytesToCaller:"+IntToStr(i64FreeBytesToCaller)); Memo1->Lines->Add("TotalBytes:"+IntToStr(i64TotalBytes)); Memo1->Lines->Add("FreeBytes:"+IntToStr(i64FreeBytes)); } else { fResult = GetDiskFreeSpace (pszDrive, &dwSectPerClust, &dwBytesPerSect, &dwFreeClusters, &dwTotalClusters); if(!fResult)return; // Process GetDiskFreeSpace results. Memo1->Lines->Add(Edit1->Text); Memo1->Lines->Add("SectPerClust:"+IntToStr(dwSectPerClust)); Memo1->Lines->Add("BytesPerSect:"+IntToStr(dwBytesPerSect)); Memo1->Lines->Add("FreeClusters:"+IntToStr(dwFreeClusters)); Memo1->Lines->Add("TotalClusters:"+IntToStr(dwTotalClusters)); } } --------------------------------------------------------------------------------

Содержание раздела