Узнать имя диска по директории

141
07 мая 2019, 17:20

Появилась необходимость в написании функции, которая на вход получает директорию диска (например C:\). А на выходе выводит название диска.

Единственное что удалось найти в интернете, не работает.

if( preg_match( '~Volumename : (.*)~i', `fsutil fsinfo volumeinfo C:\\`, $matches ) ) {
    echo $matches[1];
}
Answer 1

Ответ из англоязычного СО здесь

// Returns null if unable to determine drive letter (such as on a *nix box)
function driveLetter($path)
{
return (preg_match('/^[A-Z]:/i', $path = realpath($path))) ? $path[0] : null;
}
// To find drive letter of current file
echo "Drive letter is: ", driveLetter(__FILE__);
Answer 2

Отвечу сам на свой вопрос. Нашел на англоязычной версии данного сайта. Выводит всю информацию о дисках, нужное легко выбрать. Что самое главное, работает под windows.

<?php
 $fso = new COM('Scripting.FileSystemObject'); 
    $D = $fso->Drives; 
    $type = array("Unknown","Removable","Fixed","Network","CD-ROM","RAM Disk"); 
    foreach($D as $d ){ 
       $dO = $fso->GetDrive($d); 
       $s = ""; 
       if($dO->DriveType == 3){ 
           $n = $dO->Sharename; 
       }else if($dO->IsReady){ 
           $n = $dO->VolumeName; 
           $s = file_size($dO->FreeSpace) . " free of: " . file_size($dO->TotalSize); 
       }else{ 
           $n = "[Drive not ready]"; 
       } 
   echo "Drive " . $dO->DriveLetter . ": - " . $type[$dO->DriveType] . " - " . $n . " - " . $s . "<br>"; 
    } 
      function file_size($size) 
      { 
      $filesizename = array(" Bytes", " KB", " MB", " GB", " TB", " PB", " EB", " ZB", " YB"); 
      return $size ? round($size/pow(1024, ($i = floor(log($size, 1024)))), 2) . $filesizename[$i] : '0 Bytes'; 
      } 

?> 
READ ALSO
как отправить post запрос qt 5.11

как отправить post запрос qt 5.11

Я использую QNetworkAccessManager, и мне нужно сделать следующее: отправить post запрос, так чтобы следущий код на php мог показать мои аргументы:

162
Получение расчитанных данных из phpexcel

Получение расчитанных данных из phpexcel

Ребята, нужна ваша помощь

159
Пагинация кастомных постов используя get_posts()

Пагинация кастомных постов используя get_posts()

Пытаюсь сделать пагинацию с помощью встроенной функции the_posts_pagination(); Но она не работает в моем примере

157