WEBサーバー上に存在するディレクトリ内ファイルを全て削除したい


谷町  2015-05-28 23:50:04  No: 47341

タイトルのとおりなのですが、
どのような方法がございますでしょうか?

削除を行うPHPのプログラムを作成したのですが、
Delphiからの起動方法がわからなくて。
パラメータを渡して、起動するような具合にしたいです。

もし直接Delphiで削除できるようなら
そうしたいです。

ご教示お願い致します。


Mr.XRAY  2015-05-29 04:34:32  No: 47342

>ご教示お願い致します。

で,何が知りたいのでしょうか ?
文章を読む限りでは,
「私のかわりに,そのようなプログラムを作成してほしい.具体的なコードが欲しい」
とも読み取れます.そうすると,「質問」というより「依頼」になってしまいます.
通常「依頼」には「代価」が必要になります.

>どのような方法がございますでしょうか?

ということであれば,

(1) その Web サーバにログインする
(2) そのディレクトリ内に存在するファイル(名)を調べる
(3) それらのファイルを,ファイルがなくなるまで削除する

という方法になると思います.
当然ですが,その Web サーバのファイルを操作する権限がなければ削除できません.
つまり,

(1) その Web サーバにログインする方法を知る必要がある
(2) そのディレクトリ内に存在するファイル(名)を調べる方法を知る必要がある
(3) ディレクトリ内のファイルがなくなるまでを検出する方法を知る必要がある

ということになります.
で,何が分からないのでしょうか ?

>パラメータを渡して、起動するような具合にしたいです。

何を起動するのでしょうか ?
Web サーバのディレクトリを削除するプログラムでしょうか ?
とすると,パラメータは何にするのでしょうか ?
起動する EXE にパラメータを渡す方法はご存じなのでしょうか ?

参考リンク
http://www.hyuki.com/writing/techask.html
https://www.google.co.jp/?gws_rd=ssl
http://www.bing.com/?scope=web&mkt=ja-JP&FORM=PRJPJA
http://search.yahoo.co.jp/


Mr.XRAY  2015-05-29 04:38:04  No: 47343

>(1) その Web サーバにログインする方法を知る必要がある
>(2) そのディレクトリ内に存在するファイル(名)を調べる方法を知る必要がある
>(3) ディレクトリ内のファイルがなくなるまでを検出する方法を知る必要がある

    ↓

(1) その Web サーバにログインする方法を知る必要がある
(2) そのディレクトリ内に存在するファイル(名)を調べる方法を知る必要がある
(3) ファイルを削除する方法を知る必要がある
(4) ディレクトリ内のファイルがなくなるまでを検出する方法を知る必要がある


Mr.XRAY  2015-05-29 04:42:18  No: 47344

>起動する EXE にパラメータを渡す方法はご存じなのでしょうか ?

その EXE はどうのように起動するつもりなのでしょうか ?
エクスプローラから,それとも別のアプリから ?
それとも....


Mr.XRAY  2015-05-29 04:46:27  No: 47345

>どのような方法がございますでしょうか?

これだけであれば,Web サーバにアクセス,あるいは操作のテクノロジーにはどんな種類があるのか ?
という内容にも読み取れますが,

>タイトルのとおりなのですが、

となっていると,違いますね.


Mr.XRAY  2015-05-29 04:55:23  No: 47346

>起動する EXE にパラメータを渡す方法はご存じなのでしょうか ?

そのパラメータを EXE 側で受け取る方法はご存じなのでしょうか ?


KHE00221  2015-05-29 06:18:55  No: 47347

PHP の起動は

ShellExecute (0,'open','http://****.***.***/delete.php','','',SW_SHOW);

WebBrowser1.Navigate('http://****.***.***/delete.php');

直接削除するなら FTP でログインして削除かな


Mr.XRAY  2015-05-29 07:06:55  No: 47348

PHP の例がでたので,
Delphi 付属の Indy コンポを使用する場合の PHP の操作例です.
ディレクトリあるいはディレクトリ内のファイルの削除の場合は,対象のディレクトリよりも
上の階層に操作用の PHP のファイルをサーバに UP しておきます (当たり前 !?).

動作確認は Windows 7 U64(SP1) + Delphi XE(UP1) + Indey 10.5.7

//=============================================================================
//  Mr.XRAYのサイトのtestpost.phpを実行する例
//  testpost.phpは実在のPHPファイル
//
//  フォームに配置したTIdHTTPコンポを使用(コンポ名はIdHTTP1)
//  HTTPEncodeの使用にはusesにHTTPAppが必要
//=============================================================================
procedure TForm1.Button1Click(Sender: TObject);
var
  PostURL    : String;
  PostStream : TStringList;
  ResStream  : TStringStream;
begin
  Memo1.Clear;

  //PostURLはPHPファイルがある場所
  PostURL := 'http://mrxray.on.coocan.jp/Others/testpost.php';

  //PostStreamにはPHPに渡すパラメータを設定する
  PostStream := TStringList.Create;

  //PHPから情報を受け取るストリーム
  ResStream  := TStringStream.Create('');

  //自動でエンコードしないようにする
  IdHTTP1.HTTPOptions := IdHTTP1.HTTPOptions - [hoForceEncodeParams];

  Screen.Cursor := crHourGlass;
  try
    try
      //PHP実行
      IdHTTP1.Post(PostURL, PostStream, ResStream);
    except
      //エラー内容はIdHTTP1.ResponseTextで受取る
    end;
  finally
    Memo1.Lines.Add(IdHTTP1.ResponseText);
    //サーバからのデータを表示
    Memo1.Lines.Add(ResStream.DataString);

    Screen.Cursor := crDefault;
    FreeAndNil(PostStream);
    FreeAndNil(ResStream);
  end;
end;


Mr.XRAY  2015-05-29 07:10:13  No: 47349

>対象のディレクトリよりも上の階層に操作用の PHP のファイルをサーバに UP しておきます

もちろん,ローカルな環境で PHP が実行可能になっていれば,
ローカルなディクス内の PHP ファイルでも構いません.


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加