0

私はかなり長い間見回してきましたが、特定のディレクトリからサブフォルダーのリストを取得する方法が見つからないようです。

たとえば、www.mysite.com/projects にいて、プロジェクト内に個々のプロジェクト ファイルを含む複数のフォルダーがあるとします。

これを行う理由は、サブ フォルダー名を使用して、新しいプロジェクトの名前をメニューに追加するスクリプトを作成するつもりだったからです。

何か不足していますか?これは JQuery や JavaScript でも可能ですか?

パス名と場所を取得するところまで行って、ActiveXObjects も調べましたが、PC またはサーバーで何も動作しません。

どんな助けでも大歓迎です。

4

2 に答える 2

3

HTTP にはディレクトリのようなものはありません。リソースのみ。

これらのリソースの一部は、他のリソース (HTTP サーバーを実行しているコンピューターのファイル システムの特定のディレクトリにある) を一覧表示する HTML ドキュメントである場合があります。ほとんどの HTTP サーバーは、このようなドキュメントを自動的に生成します

適切な要求に対して適切な応答をサーバーに生成させる必要があります。次に、(jQueryに言及しているため)ajax()メソッドを使用してそのリクエストを行います。

次に、応答を解析する必要があります。デフォルトのディレクトリ インデックス ページを使用して、返された HTML を解析するか、サーバー側プログラムを記述して、より適切な形式 (JSON など) でデータを生成することができます。

そうは言っても…</p>

これを行う理由は、サブ フォルダー名を使用して、新しいプロジェクトの名前をメニューに追加するスクリプトを作成するつもりだったからです。

ほとんどの場合、サーバー上でそれを行うほうがよいでしょう。より信頼性が高く、高速で、検索エンジンに適した結果が得られます。

于 2012-08-21T15:40:29.340 に答える
0

ActiveX は、JScript (JavaScript の Microsoft 実装) がクライアントコンピューターにより多くアクセスできるようにするテクノロジであり、Internet Explorer でのみ機能します。

サーバー上のフォルダーは、ファイルシステム内のフォルダーとは異なります。任意のフォルダー/サブフォルダーには、何らかのテキストを出力する index.html が含まれる可能性があります (含まれるサブフォルダーのリストとは限りません)。

また、ほとんどの Web サーバー構成には、index.html が存在しない場合でもサブフォルダー リストを表示しないというアクティブなオプションがあります。

できることは、次のコードを使用してそのフォルダーに index.php ファイルを配置することです。

<?php
    $directories = scandir('.');
    header('Content-Type: application/json');
    echo json_encode($directories);

そして、このコンテンツを次のように受け取ることができます。

$.getJSON('http://domain.com/path/to/folder/', function(directories) {
    do_something(directories);//
});
于 2012-08-21T15:40:48.470 に答える