ftpソフトの機能の実装について疑問

このQ&Aのポイント
  • ftpソフトの機能の実装について疑問に思いました。
  • WinSCPの特定の機能について、エディタの指定やファイルの変更、保存の検知について興味があります。
  • 正しく外部エディタのファイルの保存を検知してアップロードしているのか、その仕組みについて教えていただけませんか?
回答を見る
  • ベストアンサー

ftpソフトの機能の実装

現在、WinSCP という ftpソフトを使用しているのですが、このソフトのある機能の実装について疑問に思ったので質問します。 http://winscp.net/eng/docs/lang:jp その機能というのは、ftpにログインしたあと、リモート側のファイルに対して 右クリック->「編集」するとエディタが自動的に起動してファイルの編集が可能になります。 そしてファイルの変更後、エディタの保存ボタンを押すと自動的にアップロードしてくれてるのでとても便利な機能です。 そこで疑問に思った部分は、この起動するエディタに任意のエディタが指定できるという点で、WinSCP の内部エディタであれば、ファイルの変更、保存を検知するのは容易かと思います。 しかし任意の外部エディタを起動したときに WinSCP は外部エディタのファイルの保存を、どのように検知してアップロードしているのか、その仕組みについて興味があります。 実は、このソフトはソースが公開されているので、正解は書いてあるはずなのですが、C++はよくわからずコードが追い切れなくてこちらで質問しました。 おそらくこんな感じでやっているのではという予想でもかまわないので教えていただけると有り難いです。宜しくお願いします。

  • smcss
  • お礼率85% (6/7)

質問者が選んだベストアンサー

  • ベストアンサー
  • rinkun
  • ベストアンサー率44% (706/1571)
回答No.3

動作からすると、リモートのファイルを編集する前にローカルのテンポラリフォルダにファイルをダウンロードして、そのファイルをエディタに渡していると思います。 そのフォルダないしファイルを監視して更新されたらアップロードするのでしょう。 エディタの終了を監視して、テンポラリフォルダを削除する処理もやっているかもしれません。 エディタで名前を付けて保存をしたらどうなるかなど試してみるとおもしろいかと思います。

smcss
質問者

お礼

お返事有り難うございます。 ソースを調べるとFindFirstChangeNotification が使用されていて、エディタで編集されるファイルもテンポラリフォルダなのも確認しました。 ほぼお返事にあるようなやり方で実現しているようです。 参考になりました。

その他の回答 (2)

  • wormhole
  • ベストアンサー率28% (1622/5658)
回答No.2

ファイルの変更を検知しなくても 起動した外部エディタが終了するのを監視しておく方法もあるかと思います。

smcss
質問者

お礼

お返事有り難うございます。 エディタではなくファイル・ディレクトリの変更を監視してこの機能が実現されているようでした。

  • jacta
  • ベストアンサー率26% (845/3158)
回答No.1

FindFirstChangeNotificationを使っているとかではないでしょうか?

smcss
質問者

お礼

お返事有り難うございます。 FindFirstChangeNotification を調べてみました。 ソースコードを grep するとそれらしき箇所(クラス)が見つかったのでこの API が使われているのは間違いないようです。 エディタではなくファイル・ディレクトリの変更を監視してこの機能が実現されているということですね。

関連するQ&A

  • 「シンプルなテキストエディタ+FTPクライアント機能」を探しています

    FTPクライアント機能のついた、テキストエディタを探しています。 html、css、スクリプトファイルを編集した後、 保存と同時に、サーバサイドにアップロードされて欲しいのです。 これまでは、「秀丸+Hidemarnet Explorer」で、それを行っていました。 しかし、FTP越しにファイルをひとつずつしか開けなかったり、 タブのファイル名が読みにくい(フルパスが表示されてしまう)など、 使い勝手に不満が募り、いよいよどうにかしたいと思った次第です。 出来れば、基本操作に慣れ親しんだ秀丸をカスタマイズすることで、 上記の悩みがどうにか解消されればベストなのですが、 秀丸でどうしても無理なら、他のエディタに乗り換えることも辞さない考えです。 なお、ez-HTMLなど、HTMLエディタの類(例:ez-HTML)には、 基本機能として、FTPクライアント機能のついたエディタもあることは、知っています。 しかし私が求めているのは、どんなテキストを編集するにも、機能が冗長にならない、 「シンプルなテキストエディタ(例:秀丸、サクラエディタ)+FTPクライアント機能」という形態です。 #サクラエディタに、そんなプラグインってありませんでしょうか? よい方法がありましたら、是非教えて下さい。 よろしくお願い致します。

  • FTP機能について

    Contributeを使用しているビギナーです。 通常アップロードするには、FTPクライアントが必要になって くると思うのですが、HTMLエディタによってはFTP機能が標準で 装置されているものもあるそうで、Contributeにそのような 機能が備わっているのか、疑問に思い投稿させていただきました。 どなたかご存じ、またはどういう仕組みになっているのかおわかり でしたら、どうぞご教示お願い致します。

  • FTPソフト

     FTPを使って、どこでもアップロードやダウンロードが可能なソフトを探しています。  たとえば、ネットカフェなどでも毎回設定をしなくてもフロッピーなどのメディアから立ち上げることができ、FTPでアップ、ダウンができるようなのがいいです。  FFFTPなどでは起動したパソコン上でしか設定が保存されません。  教えてください。よろしくお願いします。

  • FTPソフトについて

    FFFTPを使ってファイルをサーバにアップロードしています。 しかし、100を超えるくらいの数のファイルを一度にアップロードすると転送が止まってしまい、 ソフトを再起動してから再びアップロードをしています。 そこで質問なのですが、 (1)FFFTPを使いアップロードする場合、この様な問題を回避するする方法はありますか? (2)FFFTPでは回避できない場合、他のFTPソフトなら回避できるのでしょうか?  できるのであれば、そのソフトを教えて下さい。(できれば無料のソフトがいいのですが、有料でもかまいません) 以上、よろしくお願い致します。

  • FTPソフトでエディタを開きそのまま保存できるソフトありますか?

    現在、CGI開発をしているのですが、 LAN上に環境がなく困っています。 そこで以下のようなソフトがあれば便利と思うのですがご存知の方いらっしゃいますでしょうか? ■現在 1.FFFTPでダウンロード 2.秀丸で開く 3.FFFTPでアップロード ■実現したい事 1.FTPソフトでファイルを開くと秀丸が開く 2.秀丸で保存するだけでサーバへアップロード このような便利なFTPソフトはありますでしょうか? もしなければ、ファイルが特定フォルダー以下に 保存されたら瞬間的に自動でリモートのサーバへ アップしてくれるようなマニアックなソフトでもOKです。

  • Gumblarウィルス対策に有効なFTPソフトを知りたいです。

    Gumblarウィルス対策に有効なFTPソフトを知りたいです。 Gumblarウィルスが流行していますが、FFFTPでは危険ということで SFTPで送信できるWinSCPに乗り換えようと思うのですが、 WinSCPもGumblarウィルスの標的らしいという情報もあり迷っています。 WinSCPでもパスワードの保存機能を使用せず、毎回入力すれば安全なのでしょうか。 もちろん、ウィルスチェックソフトや、AdobeのJavaのOFF、WindowsUpdateなどは 行なっています。

  • FTPソフト・パーミッションの保存

    FTPソフトを探しております。 サイトデータをFTPソフトでローカルにバックアップしたいのですが、サーバ上のファイルをダウンロードする際、そのファイルのパーミッション設定も含んでダウンロードしてくれるようなソフトはありませんでしょうか。 サーバがディスククラッシュ等で壊れ、まっさらなサーバに乗り換えを余儀なくされる際、ファイルを改めてアップした後の各ファイルのパーミッション設定の手間を省きたいのです。 また欲を言えば、ファイルの所有者情報をダウンロード時に保存し、アップロード時に自動的にFTPアカウントを切り替えて接続・・・、ってちょっと欲深過ぎますね・・・苦笑

  • ftpのフリーソフト

    iPhoneで使えるftpのフリーソフトを探しています。 Windowsでいうと、FFFTPの機能を有するソフトが 望ましいのですが、オススメのものがあれば 教えて下さい。 サーバに置かれたファイルを参照するのみではなく、 ダウンロード/アップロード/削除の機能があるソフトを 探しております。 お知恵の拝借をお願いします。

  • FTPソフトとは

    1) 通常FTPソフトは、クライアントとFTPサーバーのファイルやデータのやり取りに使われるソフトではないんでしょうか? 2) ホームページをアップロードする際に、FTPソフトを使用すると資料に書いてあったんですがどう言うことかよく理解できません。 インターネット初めてまがないものですので、解答宜しくお願いします。

  • FTPサーバ内に直接操作

    現在、FTPサーバーを立て、家庭のPCと外部からの接続に対し、ファイルの共有をしています。 ただ、これではファイルの更新を行う時に、ダウンロード→編集→アップロードという手順になりますが、直接サーバ上のファイルにアクセスして編集を行うことはできないのでしょうか? また、サーバに置いたソフト(レジストリ等を使用しないもの)を外部で実行できると便利かと思ったのですが、行う方法は無いでしょうか? 外部からアクセス可能なネットワークドライブのようなものを作成すればファイルを直接開けるので可能だとは思うのですが… また、アプリケーションの実行をサーバPC上で行い、表示と操作を外部から行うことは可能でしょうか?この場合だと、レジストリを使用するソフトの実行も可能だとは思いますが… 実行速度やセキュリティの問題は問いません。