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

Вниз

Локальный логический диск vs сетевой диск   Найти похожие ветки 

 
Германн ©   (2007-11-29 02:04) [0]

Как их различить? Т.е. насколько легко или наоборот трудно отличить одно от другого?


 
DrPass ©   (2007-11-29 02:04) [1]

GetDriveType это сообщает


 
Германн ©   (2007-11-29 02:10) [2]


> DrPass ©   (29.11.07 02:04) [1]
>
> GetDriveType это сообщает
>

Если не затруднит, сообщи что именно она возвращает в обоих случаях.
Поясню. Я не имею задачи научиться их различать. Но мне нужно обоснование того, что если кто-то захочет их различить, то ему ничто не помешает, кроме его собственного неумения.


 
korneley ©   (2007-11-29 02:22) [3]


> GetDriveType...
"DRIVE_REMOTE The drive is a remote (network) drive."
Логический - вроде не remote... ;)


 
KilkennyCat ©   (2007-11-29 02:24) [4]

Это легко. Достаточно выдернуть патч-корд. если диск исчез -  был сетевой. Если исчезли все диски, значит, выдернут провод питания.


 
KilkennyCat ©   (2007-11-29 02:26) [5]


> korneley ©

а на усбишный так не скажет? хотя, усбишный, тот же сетевой должен считаться. теоретически. ибо внешний. но винда его локальным пишет. пойду спать, совсем меня запутали....


 
Riply ©   (2007-11-29 02:29) [6]

> [0] Германн ©   (29.11.07 02:04)
> Локальный логический диск vs сетевой диск
> Как их различить? Т.е. насколько легко или наоборот трудно отличить одно от другого?

Спасибо :)


 
Германн ©   (2007-11-29 02:30) [7]


> KilkennyCat ©   (29.11.07 02:24) [4]
>
> Это легко. Достаточно выдернуть патч-корд. если диск исчез
> -  был сетевой. Если исчезли все диски, значит, выдернут
> провод питания.
>

Эээ. Тут несколько о другой ситуации. Сети нет вообще.
Я могу какой-то каталог (папку) на своем локальном физическом диске объявить как сетевой диск.


 
Германн ©   (2007-11-29 02:32) [8]


> Riply ©   (29.11.07 02:29) [6]

Не за что.
А за что спасибо?
Неужели я ненароком влез туда, куда ...
:)))


 
korneley ©   (2007-11-29 02:34) [9]


> Я могу какой-то каталог (папку) на своем локальном физическом
> диске объявить как сетевой диск.
И...что? Если драйвера честные, то сетевой = сетевой (с точки зрения софта)


 
Riply ©   (2007-11-29 02:37) [10]

> [8] Германн ©   (29.11.07 02:32)
> Не за что.
> А за что спасибо?

У меня совершенно вылетело из головы, что диски могут быть еще и "сетевыми".
Соответственно, я это (у себя в программе) никак не учитывала.
Так что ты помог исправить будущие баги :)


 
Германн ©   (2007-11-29 02:50) [11]


> korneley ©   (29.11.07 02:34) [9]
>
>
> > Я могу какой-то каталог (папку) на своем локальном физическом
> > диске объявить как сетевой диск.
> И...что? Если драйвера честные, то сетевой = сетевой (с
> точки зрения софта)
>

Хм. Поздно уже. Мысли разбегаются. Да и других забот - полон рот.
Оставим пока. Если осмыслю, переспрошу.


 
Германн ©   (2007-11-29 02:59) [12]


> Riply ©   (29.11.07 02:37) [10]

Ну вот тебе - всегда пожалуйста! Только не связывайся с системами жизнеобеспечения. И если уйдёшь в стюардессы, предупреди нас.
:-)


 
Riply ©   (2007-11-29 04:41) [13]

> [12] Германн ©   (29.11.07 02:59)
> Ну вот тебе - всегда пожалуйста! Только не связывайся с системами жизнеобеспечения.
> И если уйдёшь в стюардессы, предупреди нас. :-)

Да куда ж я от вас-то. Приручили... :)


 
Anatoly Podgoretsky ©   (2007-11-29 09:27) [14]

> korneley  (29.11.2007 02:34:09)  [9]

Ты затронул жизненый вопрос, а много их правильных?


 
Anatoly Podgoretsky ©   (2007-11-29 09:28) [15]

> Riply  (29.11.2007 04:41:13)  [13]

Ты в ответе за кого приручил
Экзюпери


 
Rouse_ ©   (2007-11-29 09:57) [16]

function GetDrivesData(const 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;



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

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

Наверх





Память: 0.51 MB
Время: 0.006 c
15-1196449315
JusteR
2007-11-30 22:01
2007.12.30
Help with translate


2-1196128643
Abcdef123
2007-11-27 04:57
2007.12.30
2 вопроса по одной теме - печать файла в отчете.


2-1197013873
Rimd
2007-12-07 10:51
2007.12.30
OnMouseUp


6-1177313276
SergP
2007-04-23 11:27
2007.12.30
TWebbrowser. Разный ХТМЛ-код.


15-1196174279
All More system
2007-11-27 17:37
2007.12.30
Детект руткитов





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский