2014-10-22 2 views
0

Здравствуйте, у меня есть файл с именем files.txt, в этом файле есть пути к файлам, например: /home/ojom/123.jpg /home/ojom/oaksdokwijeqijwqe .jpgПроверьте, находятся ли пути из файла физически на жестком диске

Есть миллион этих путей в этом файле Мне нужно посмотреть, физически ли файлы в этом файле физически расположены (существуют) на моем жестком диске (если они не записывают эти пути в другой файл), как это сделать Я делаю это? Что я могу использовать?

+1

Любой язык программирования, который вам нравится. – Quentin

ответ

0

Вы можете проанализировать этот файл с помощью PHP, а затем просмотреть результаты и проверить их с помощью file_exists.

Приведенный ниже пример работает, если каждый путь к файлу находится на новой строке.

<?php 

$files = array(); 
$handle = fopen("files.txt", "r"); 
if ($handle) { 
    while (($line = fgets($handle)) !== false) { 
     if(!file_exits($line)) { 
      continue; // file does not exist, skip 
     } else { 
      $files[] = $line; 
     } 
    } 
} else { 
    die('Error opening the file'); 
} 
fclose($handle); 

echo "These files exist:"; 
echo "<pre>" . print_r($files, true) . "</pre>"; // prints them as an array 

Вы также можете использовать массив для дальнейшей обработки.

0

Вот Python решения:

import os.path 

files = 'c:\\test\\files.txt' 
output = 'c:\\test\\filesNotExist.txt' 

with open(files) as f: 
    for file in f: 
     if not os.path.isfile(file): 
      f = open(output, 'w') 
      f.write(file) 
      f.close() 
f.close() 

Этого скрипт сканирует текстовый файл и записывает список несуществующих файлов в выходном текстовом файл.

Смежные вопросы