|
|
|
|
|
для: Trianon
(28.01.2009 в 18:26)
| | Скрипт конечно делает, что надо, но необходима реализация в bash... | |
|
|
|
|
|
|
|
для: Jaivan
(28.01.2009 в 18:08)
| | Для варианта с Windows
a) файловая система как правило ntfs, а потому - адекватная
б) файлы с символом двоеточия в имени все равно создать невозможно. | |
|
|
|
|
|
|
|
для: Trianon
(28.01.2009 в 17:11)
| | C fopen это там мысли в слух ))) пока в итоге получился не замысловатый код, который делает, что нужно (для варианта с windows)
<?php
$path_bgn = $HTTP_POST_VARS["path_bgn"];
$path_end = $HTTP_POST_VARS["path_end"];
if(empty($path_bgn)) {
$path_bgn = 'C:\\date2dir\\';
}
if(empty($path_end)) {
$path_end = 'C:\\date2dir\\test\\';
}
$dir_bgn = opendir($path_bgn);
$file = array();
while(($fl = readdir($dir_bgn))) {
// Если текущий объект является файлом - удаляем его
if(is_file($path_bgn.$fl)) $file[] = $fl;
}
closedir($dir_bgn);
if(!empty($file)) {
sort($file);
echo "<pre>";
print_r($file);
echo "</pre>";
}
$len = sizeof($file);
for($i=0;$i<$len;$i++){
if ($prev_value != substr($file[$i],0,10)){
$newpath = $path_bgn.substr($file[$i],0,10);
mkdir($newpath);
}
copy($path_bgn.$file[$i],$newpath."\\".$file[$i]);
$prev_value = substr($file[$i],0,10);
}
?>
|
я так понимаю грамотней это делать вообще в shell? | |
|
|
|
|
|
|
|
для: Jaivan
(28.01.2009 в 16:45)
| | Если я правильно понял, название файла выглядет так: 2009-01-01-12:00.txt ?
В таком случае нужно выделить название и по нему уже сортировать. Получить все названия файлов в дирректории можно этой функцией:
<?
function read_file()
{
$dir_file = opendir("Ваш_каталог");
while(false !== ($file = readdir($dir_file)))
if($file != '.' && $file != '..')
$files[]= substr($file, 0, strrpos($file, '.'));
return $files;
}
echo implode("<br>",read_file());
| и отсюда плясать. Только зачем, они и так по порядку... | |
|
|
|
|
|
|
|
для: Jaivan
(28.01.2009 в 16:45)
| | где Вы видите здесь открытие функцией fopen?
На самом деле, если у Вас на машине на этом разделе стоит адекватная файловая система (к примеру ReiserFS)), файлы сами собой будут упорядочены. | |
|
|
|
|
|
|
|
для: cheops
(28.01.2009 в 13:16)
| | можно как нибудь избежать открытия каждого файла функцией fopen? | |
|
|
|
|
|
|
|
для: Jaivan
(28.01.2009 в 12:37)
| | Можно отталкиваться от следующего скрипта
<?php
// Открываем директорию
$dirname = "test3/";
$dir = opendir($dirname);
// В цикле считываем её содержимое
$file = array();
while(($fl = readdir($dir)))
{
// Если текущий объект является файлом - удаляем его
if(is_file($dirname.$fl)) $file[] = $fl;
}
// Закрываем директорию
closedir($dir);
// Если имеется хоть один файл - сортируем массив и
// выводим результат
if(!empty($file))
{
sort($file);
echo "<pre>";
print_r($file);
echo "</pre>";
}
?>
|
| |
|
|
|
|
|
|
| Здравствуйте!
Необходимо написать достаточно простой скрипт для Debian, суть в следующем:
имеется директория с файлами, которые записываются в формате <год-месяц-день-часы:минуты>.<расширение>, например:
2009-01-01-12:00
2009-01-01-13:00
2009-01-02-12:00
2009-01-02-13:00
2009-01-03-12:00
2009-01-03-13:00
нужно эти файлы отсортировать в директории по датам создания, т. е. 2009-01-01, 2009-01-02, 2009-01-03 и тд
Помогите пожалуйста начать реализацию в правильном направлении, чтобы в лес за дровами не ходить )))
Заранее спасибо! | |
|
|
|
|