|
|
|
| У меня есть папка с разряженными файлами, "нулевая информация замещается в них виртуальными нулями" ... То есть в папке куча недокаченных файлов, совсем недокаченные хочу поудалять. (может кто знаком с "рыбалкой" ;-)
Функция filesize() определяет размер целого файла, а не реальный, занимаемый им на диске ...
Как можно определить размер файла "На диске:" (в виндовсе) ?
Поискал из командной строки, нашел команду "compact" из нее вроде можно достать то, что нужно. Но! Почему-то она не выполняется из скрипта :( Да и вообще та же команда "dir" как-то своеобразно из скриптов работает: показывает файлы еще и во вложенных папках (может с параметром /S запускается, но не в этом дело) ....
Как правильно работать с системными командами? (На локалхосте. Ограничений никаких нет ... виндовс)
<?
/* пробовал так */
$result = `compact`;
//$result = system('compact');
//$result = exec("compact");
echo nl2br($result);
?>
| Может быть есть другой способ узнать этот размер? | |
|
|
|
|
|
|
|
для: kasmanaft
(01.02.2007 в 13:17)
| | Ты смотри на него ... не хотит и всё :(
DIR работает, а COMPACT опять нет.
<?php
$text = '';
$descriptorspec = array(
0 => array("pipe", "r"),
1 => array("pipe", "w"),
2 => array("pipe", "w")
);
$process = proc_open('D:\WINDOWS\system32\cmd.exe', $descriptorspec, $pipes);
if (is_resource($process))
{
fwrite($pipes[0], "dir C:\r\n");
/*
fwrite($pipes[0], "C:\r\n");
fwrite($pipes[0], "compact\r\n");
*/
fclose($pipes[0]);
while($str = fgets($pipes[1], 1024))
$text .= $str;
fclose($pipes[1]);
}
echo iconv('866', 'windows-1251', $text);
?>
|
Что я делаю неправильно? | |
|
|
|
|
|
|
|
для: kasmanaft
(01.02.2007 в 13:17)
| |
<?
print iconv("CP866", "WINDOWS-1251", `compact`);
| Сработало замечательно. | |
|
|
|
|
|
|
|
для: Саня
(01.02.2007 в 16:09)
| | Действительно всё работает ... Запускал из php expert editor'a - не хотел работать... проверил как положено ....
И оно работает! ёпть ... пол дня просидел ... | |
|
|
|