C:\Users\2017\Desktop\Accounts
там много текстовых документов и нужно открывать последний по дате создания либо по названию
как получить последний текстовый документ в папке?
Re: как получить последний текстовый документ в папке?
Вот код как определить самый свеже правленный файл.
Определяем с помощью функции file_os->get_modification_date
Определяем с помощью функции file_os->get_modification_date
$path= 'C:\Users\2017\Desktop\Accounts'; $all_items = $folder->get_all_items($path,true, false); $all_items=explode("<br>",$all_items); //print_r($all_items); $file_name=""; $modification_date=""; // цикл по всем элементам foreach ($all_items as $value) { // получить имя файла $name = $file_os->get_name($value); echo $name."<br>"; $md = $file_os->get_modification_date($path."\\".$name); echo $md."<br>"; // получаем начальные данные if($file_name=="") { $file_name =$name; $modification_date = $md; } else { // преобразуем строки в даты $d1 = date_create_from_format('d.m.y', $md); $d2 = date_create_from_format('d.m.y', $modification_date); // сравниваем даты if($d1>$d2) { $file_name =$name; $modification_date = $md; } } } echo "самый свежий правленый файл $file_name за $modification_date<br>"; // прочитаем $txt = $textfile->read_file($path."\\".$file_name);
Re: как получить последний текстовый документ в папке?
а как сделать точнее ?
я так понял в эту строчку нужно добавить параметр true
нужно учитывать до минуты время создания
на данный момент пришел к вот такому
и теоретически должно работать но не работает
Код: Выделить всё
$md = $file_os->get_modification_date($path."\\".$name);
нужно учитывать до минуты время создания
на данный момент пришел к вот такому
и теоретически должно работать но не работает
Код: Выделить всё
$path= 'C:\Users\2017\Desktop\Accounts';
$all_items = $folder->get_all_items($path,true, false);
$all_items=explode("<br>",$all_items);
//print_r($all_items);
$file_name="";
$modification_date="";
// цикл по всем элементам
foreach ($all_items as $value)
{
// получить имя файла
$name = $file_os->get_name($value);
$md = $file_os->get_modification_date($path."\\".$name);
$mdh = $file_os->get_modification_date($path."\\".$name,true);
echo "$md<br>";
echo "$mdh<br>";
// получаем начальные данные
if($file_name=="")
{
$file_name =$name;
$modification_date = $md;
$modification_dateh = $mdh;
}
else
{
// преобразуем строки в даты
$d1 = date_create_from_format('d.m.y', $md);
$d2 = date_create_from_format('d.m.y', $modification_date);
$d3 = date_create_from_format('h.i.s', $mdh);
$d4 = date_create_from_format('h.i.s', $modification_dateh);
// сравниваем даты
if($d1>$d2)
{
if ($d3>$d4)
{
$file_name =$name;
$modification_date = $md;
}
}
}
}
echo "самый свежий правленый файл $file_name за $modification_date//$modification_dateh<br>";
// прочитаем
echo $txt = $textfile->read_file($path."\\".$file_name);
// Quit
$app->quit();
?>
Re: как получить последний текстовый документ в папке?
Если надо со временем попробуйте так:
$path= 'C:\Users\2017\Desktop\Accounts'; $all_items = $folder->get_all_items($path,true, false); $all_items=explode("<br>",$all_items); //print_r($all_items); $file_name=""; $modification_date=""; // цикл по всем элементам foreach ($all_items as $value) { // получить имя файла $name = $file_os->get_folder($value)."\\".$file_os->get_name($value); //echo $name."<br>"; // получаем первые результаты if($file_name=="") { $file_name =$name; $modification_date=date ('d.m.y H:i:s', filemtime($file_name)); } else { //echo date ('d.m.y H:i:s', filemtime($file_name))."<br>"; //echo date ('d.m.y H:i:s', filemtime($name))."<br>"; if(filemtime($name)>filemtime($file_name)) { $file_name =$name; $modification_date=date ('d.m.y H:i:s', filemtime($file_name)); } } } echo "самый свежий правленый файл $file_name за $modification_date<br>"; // прочитаем $txt = $textfile->read_file($path."\\".$file_name);