Beste,

Soms als ik op zoek ben naar een bestand weet ik niet of het misschien op die harde schijf staat of op die andere. Het lijkt me fijn om de hele mappenstructuur ook gewoon in Finder op mijn interne harde schijf te hebben staan. Dat hoeft dan maar een paar kb te kosten lijkt me. Bestaat hier een speciaal soort alias voor die ik misschien via de terminal aan kan maken?

Eigenlijk zou dus van elke harde schijf ik inplug direct de mappenstructuur gekopieerd moeten worden.

Is zoiets mogelijk?

Bedankt!
het lijkt me sterk dat dit kan..
Gewoon alle mappen (zonder bestanden) kopieren.
Ik denk niet dat in een configuratie-bestand staat oid. Wordt gewoon elke keer doorlopen.
Mijn eerste idee is: het is doenbaar.

Ik zie niet meteen grote, principiele problemen.

Het lijkt me wel heel erg traag, als daar veel files staan.
Als het gaat om een schijf met een paar honderd films en mp3's, moet dat geen probleem zijn, maar als daar bv. broncode staat, met honderden include files, in complexe mappenstructuren ...
Hoe zou je het doen dan? Misschien een automator code gebruiken? Of iets in C maken? Er zijn ook programma's die vanzelf opstarten als je een camera schijf via USB inplugt. En het gaat inderdaad om een paar honderd bestanden vaak.

Ik ben benieuwd.
Ik kan je een stukje code tonen die al een deel regelt.

Ik veronderstel een MS Windows omgeving.
Als je $disks invult met de schijven die je zou verwachten, gaat dit stuk code om de 5 seconden zoeken naar een verandering in de schijven.

't Is al iets


<?php
session_start();
// TODO: aanvullen ...
$disks = array(
  'C:',
  'D:',
  'E:',
);
switch (empty($_GET['p']) ? '' : $_GET['p']) {
  default:
    unset($_SESSION['available_disks']);
    $_SESSION['available_disks'] = array();
    echo html('<div id="message">Even geduld</div>', 'Aan het scannen');
    break;
  case 'poll':
    $output = '';
    $session_check = array();
    foreach ($disks as $disk) {
      if (is_dir($disk)) {
        $session_check[] = $disk;
        $output .= '<form action="?p=scan" method="post"><input type="hidden" name="disk" value="' . $disk . '"><input type="submit" value="' . $disk . '"></form>';
      }
    }
    if (empty($_SESSION['available_disks']) || count($session_check) !== count($_SESSION['available_disks'])) {
      echo $output;
      $_SESSION['available_disks'] = $session_check;
    }
    else {
      // geen verandering
    }
    exit;
    break;
}

function html($body="", $title="") {  // gewoon een functie om alles in een HTML document te wrappen.  Wat de notatie betreft: zie "heredoc notation"
  return <<<HTML
<!doctype html>
<html>
  <head>
    <title>$title</title>
  </head>
  <body>
    <h1>$title</h1>
$body
    <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js" type="text/javascript"></script>
    <script>
      $(document).ready(function($){
        var message = $('#message');
        var pollInterval = 5000;  // om de 5 seconden naar de server kijken
        scan_disks();
        function scan_disks() {
          $.ajax({
            url: '?p=poll',
            success: function(data) {
              if (data != '') {
                message.html(data);
              }
              setTimeout(scan_disks, pollInterval);
            }
          });
        }
      });
    </script>
  </body>
</html>
HTML;
}
?>
Ik gok zelf dat hij OSX gebruikt en niet windows. Finder is zoiets als windows verkenner.

Kun je die schijven niet op het netwerk hangen ofzo?
Ik weet niets van OSX.
Maar php heeft toegang tot de schijven die je in verkenner kan zien. Ook de netwerk locaties.

Ik veronderstel dat dat op Mac ook het geval is.
+- alleen andere benamingen.

Reageren