Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Сети";
Текущий архив: 2007.12.02;
Скачать: [xml.tar.bz2];

Вниз

Определить сетевой ли диск   Найти похожие ветки 

 
webpauk   (2007-03-27 12:19) [0]

есть
Dir="Z:\Корпоративный отдел\KVL\Сейчас\Запросы\Коника\";

есть ли возможность определить, что Z - сетевой диск.
если да, то интересует как узнать IP адрес этого диска?


 
tesseract ©   (2007-03-27 12:21) [1]

GetDriveTypeA.


 
Rouse_ ©   (2007-03-27 13:38) [2]

function GetDrivesData(NotNT: Boolean): String;

 function GetFreeSpace(Disk: String): String;
 var
   FA, TS: Int64;
   TF: TLargeInteger;
 begin
   if GetDiskFreeSpaceEx(PChar(Disk), FA, TS, @TF) then
     Result := IntToStr(Floor((TF / 1024) / 1024)) + " Мб"
   else
     Result := "не определено";
 end;

 function GetDriveFSName(Volume: String) : String;
 var
   VolumeName, FileSystemName: array [0..MAX_PATH - 1] of Char;
   VolumeSerialNo, MaxComponentLength, FileSystemFlags: LongWord;
 begin
   Result := "";
   if GetVolumeInformation(PChar(Volume), VolumeName, MAX_PATH, @VolumeSerialNo,
     MaxComponentLength, FileSystemFlags, FileSystemName, MAX_PATH) then
     Result :=  String(FileSystemName)
   else
     Result := "";
 end;

const
 NameSize = 4;
 VolumeCount = 26;
 TotalSize = NameSize * VolumeCount;
 Report = "  - Диск: %s %s"#13#10;
 ReportFull = "  - Диск: %s %s, файловая система: %s, свободно: %s"#13#10;
var
 Buff, Volume, svQuery: String;
 lpQuery: array [0..MAXCHAR - 1] of Char;
 I, Count: Integer;
begin
 SetLength(Buff, TotalSize);
 Count := GetLogicalDriveStrings(TotalSize, @Buff[1]) div NameSize;
 if Count = 0 then
   Result := "Диски не определены"
 else
   Result := "";
   for I := 0 to Count - 1 do
   begin
     Volume := PChar(@Buff[(I * NameSize) + 1]);
     case GetDriveType(PChar(Volume)) of
       DRIVE_UNKNOWN: Result := Result + (Format(Report, [Volume,
         "Тип диска не определен."]));
       DRIVE_NO_ROOT_DIR:
         Result := Result + (Format(Report, [Volume,
           "Корневой путь диска не верен. Тип диска не определен."]));
       DRIVE_REMOVABLE:
       begin
         Volume[3] := #0;
         QueryDosDevice(PChar(Volume), @lpQuery[0], MAXCHAR);
         Volume[3] := "\";
         if String(lpQuery) = "\Device\Floppy0" then
           Result := Result + (Format(Report, [Volume, "Привод гибких дисков."]))
         else
           if String(lpQuery) = "\Device\Floppy1" then
             Result := Result + (Format(Report, [Volume, "Привод гибких дисков."]))
           else
             Result := Result + (Format(ReportFull,
               [Volume, "Флэш накопитель",
               GetDriveFSName(Volume), GetFreeSpace(Volume)]));
       end;
       DRIVE_FIXED:
       begin
         if NotNT then
         begin
           Volume[3] := #0;
           QueryDosDevice(PChar(Volume), @lpQuery[0], MAXCHAR);
           Volume[3] := "\";
           if Length(String(lpQuery)) = 2 then
             Result := Result + (Format(ReportFull, [Volume,
               "Логический", GetDriveFSName(Volume), GetFreeSpace(Volume)]))
           else
             Result := Result + (Format(Report, [Volume,
               "Диск является отображением папки находящейся по адресу: "" +
                 String(lpQuery) + """]));
           Continue;
         end;
         Volume[3] := #0;
         QueryDosDevice(PChar(Volume), @lpQuery[0], MAXCHAR);
         Volume[3] := "\";
         if Copy(String(lpQuery), 1, 22)  = "\Device\HarddiskVolume" then
           Result := Result + (Format(ReportFull, [Volume,
             "Логический", GetDriveFSName(Volume), GetFreeSpace(Volume)]))
         else
           Result := Result + (Format(Report, [Volume,
             "Диск является отображением папки находящейся по адресу: "" +
               Copy(String(lpQuery), 5, Length(String(lpQuery))) + """]));
       end;
       DRIVE_REMOTE:
       begin
         Volume[3] := #0;
         QueryDosDevice(PChar(Volume), @lpQuery[0], MAXCHAR);
         Volume[3] := "\";
         svQuery := Copy(String(lpQuery), 29, Length(String(lpQuery)));
         Delete(svQuery, 1, Pos("\", svQuery));
         Result := Result + (Format(ReportFull, [Volume,
           "Удаленный (сетевой) диск. Сетевой путь: "\\" + svQuery + """,
           GetDriveFSName(Volume), GetFreeSpace(Volume)]));
       end;
       DRIVE_CDROM:
         Result := Result + (Format(Report, [Volume,"CD-ROM."]));
       DRIVE_RAMDISK:
         Result := Result + (Format(ReportFull, [Volume, "RAM диск.",
           GetDriveFSName(Volume), GetFreeSpace(Volume)]));
     else
       Result := (Format(Report, [Volume, "Тип диска не определен."]));
     end;
   end;
end;


 
webpauk   (2007-03-27 13:39) [3]

скорее GetDriveType(PChar(ExtractFileDrive(Dir)))
как узнать IP адрес этого диска?


 
Reindeer Moss Eater ©   (2007-03-27 13:41) [4]

гетхостбайнейм?


 
webpauk   (2007-03-27 14:19) [5]

gethostbyname("Z:\")?
бретт...


 
Rouse_ ©   (2007-03-27 14:24) [6]

гетхостбайнейм для svQuery из этой строчки:
        Result := Result + (Format(ReportFull, [Volume,
          "Удаленный (сетевой) диск. Сетевой путь: "\\" + svQuery + """,


 
Reindeer Moss Eater ©   (2007-03-28 13:51) [7]

gethostbyname("Z:\")?
бретт...


а что, в конце марта "Z:\" вдруг стало именем хоста?


 
Anatoly Podgoretsky ©   (2007-03-29 23:13) [8]


> а что, в конце марта "Z:\" вдруг стало именем хоста?

А почему нет?


 
SlymRO ©   (2007-03-30 10:09) [9]

" VBScript.
" netdrives.vbs
Option Explicit
Dim WshNetwork,NetworkDrives,i
Set WshNetwork = CreateObject("WScript.Network")
Set NetworkDrives = WshNetwork.EnumNetworkDrives
For i = 0 to NetworkDrives.Count - 1 Step 2
 WScript.StdOut.WriteLine NetworkDrives.Item(i) & " = " & NetworkDrives.Item(i+1)
Next



Страницы: 1 вся ветка

Форум: "Сети";
Текущий архив: 2007.12.02;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.48 MB
Время: 0.051 c
15-1194259585
xayam
2007-11-05 13:46
2007.12.02
что скажите про этот хостинг


11-1178978783
_vadim
2007-05-12 18:06
2007.12.02
KOLDirDlgEx


15-1193785860
Германн
2007-10-31 02:11
2007.12.02
Directory is busy


15-1194023702
Kerk
2007-11-02 20:15
2007.12.02
Вопрос о русском языке


2-1194373794
Инокентий
2007-11-06 21:29
2007.12.02
форма mdi





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский