Форум: "Сети";
Текущий архив: 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