FTPサーバ上にあるファイルを読込み時にロックしたい – プログラミング – Home

FTPサーバ上にあるファイルを読込み時...
 
通知
すべてクリア

[解決済] FTPサーバ上にあるファイルを読込み時にロックしたい


青い猫
 青い猫
(@青い猫)
ゲスト
結合: 19年前
投稿: 2
Topic starter  

こんにちは。
初めて投稿させていただきます。VC++を始めて3ヶ月です。
どうしたらよいのかわからなくなってしまったので質問させてください!!

今、FTPサーバからファイルを読み込んできて、あるフォルダに保存し、その際に更新履
歴を残すファイルを作成するというプログラムを作成しています。
更新履歴ファイルは一度内容を読み込んでから追加するという手順を踏んでいます。
ですが、ちょっと変則的にソフトを多重起動させて使用することになり、更新履歴を作
成する部分で同時刻に別々のソフトから更新履歴ファイルにアクセスするという事態に
なってしまいました。
これがローカルフォルダであれば、CStdioFileを使用して、shareExclusiveを使えばフ
ァイルのアクセス制御ができますが、フォルダがFTPサーバの場合、ファイルが開いてい
る時に排他制御をすることはできるんでしょうか?もしなければ、やはり時間をずらす
ように調整しなければならないのでしょうか?

いくつか探してみたのですが、どう検索してよいかわからず、これといったものがわか
りませんでした。
もし宜しかったら皆様の知恵を拝借させてください!

開発環境 XP VC++ .NET MFC


引用未解決
トピックタグ
KING・王
 KING・王
(@KING・王)
ゲスト
結合: 20年前
投稿: 122
 

> これがローカルフォルダであれば、CStdioFileを使用して、shareExclusiveを使えばフ
ァイルのアクセス制御ができますが、フォルダがFTPサーバの場合、ファイルが開いてい
る時に排他制御をすることはできるんでしょうか?

詳細までは調べていませんが、FTPの仕様にそのような機能はないようです。
#間違っていたら、識者の方々、フォローをお願いします。

> いくつか探してみたのですが、どう検索してよいかわからず、これといったものがわか
りませんでした。

とりあえず、FTPの仕様(RFC959)を調べてみて下さい。

たとえば、排他制御のフラグのかわりに、特定のファイル名のファイルをサーバに作成するとか
は・・・?
(結構めんどくさいし、それでいけるかどうかはわかりませんが。)


返信引用
tetrapod
 tetrapod
(@tetrapod)
ゲスト
結合: 21年前
投稿: 830
 

まぁそういう場合には ftp など使わずに rcs なり cvs なり subversion なり使うのが筋。
鯖がわにて排他制御するロジックを組んでおかないと重すぎます。
それに ftp だと全履歴データを読み込んで書き戻すことになります。
転送量のほとんどが無駄っつーことになりかねません。方針転換をお勧めします。


返信引用
青い猫
 青い猫
(@青い猫)
ゲスト
結合: 19年前
投稿: 2
Topic starter  

KING・王さん、tetrapodさん、レスありがとうございます。

やっぱりないんですね、、、
先程、FTPの仕様をかいつまんで読んでみました。
通常行うことではないことをやろうとしていることが良く分かりました。
以前に作成したプログラムをそのまま使ってできるかと思っていたのですが、
やはり方向を変えるしかないようですね。

補足しますと、
読み込んでくるサーバは複数からアクセスできるのですが、保存するサーバはこのソフ
トでしか上書きしません。(でも3~5つほど同じPC上でソフトを起動して使用しま
すが、、、)
しかも履歴ファイルはサーバ側が確認すれば消してしまうという類のファイルであった
ためにこのような手法を取りました。

とりあえず、プログラム内で一時ファイルを作成し、全てのデータが揃った時点でサー
バに保存するような形で考えてみます。
また何かありましたら、宜しくお願いします。

ありがとうございました。


返信引用

返信する

投稿者名

投稿者メールアドレス

タイトル *

プレビュー 0リビジョン 保存しました
共有:
タイトルとURLをコピーしました