• 締切済み

ファイルのリネイム方法

いつもお世話になっています。 VBで、FTPサーバのデータを取得し、取得したデータのファイル名を変更する処理を作成しています。 変更するファイル名と同名のファイルが存在しなければ問題ないのですが、同名のファイルが存在すると落ちてしまいます。 VBのソースを変更する必要があるのでしょうか? FTPサーバの設定を変更する必要があるのでしょうか? ちなみに、VBは6.0 OSはサーバ・クライアント共にXPです。 よろしくお願いします。

みんなの回答

  • takasebou
  • ベストアンサー率42% (61/144)
回答No.2

FTPをどうやってやっているか等にもよって違うかもしれませんが、それですとバージョンアップした事による弊害(それがVBかあるいはOSによるのかはわかりませんが)だと思われますね。 IISもずいぶん前に設定したきりで最新のバージョンはわからないのですが、ちょっとIISの設定だけでは厳しそうな気もします。 ただIISは詳しくないので、何らかの設定がある可能性はあります。そちらは誰か詳しい人にお任せします(^^;; でもソースをいじるのは大変かもしれませんが、何らかのチェック処理はいれた方が無難だとは思いますよ!

  • takasebou
  • ベストアンサー率42% (61/144)
回答No.1

サーバとクライアントのどちらが落ちるのかにもよるとは思いますが。 通常でしたらVBのソフト側で対応するんじゃないでしょうか? ダウンロードする時のファイル名を一時ファイル名(APIとかで取得するとか、プログラムで任意につけるとか)にして、上書きするか。 ダウンロードする前にファイルの存在チェックを行い、あったら消してから行うとか。 ソフト側で対応した方が無難かと思います。 ただもしそれでサーバが落ちるのであれば、サーバ側に問題があるような気もしますが……

hiro_sun
質問者

お礼

さっそくの回答ありがとうございます。 基本的にはサーバ側は問題ないと思いますが、管理ツールのインターネットインフォメーションとかの設定でできないかなーっと、甘い期待もしています。 ちなみに以前に OS:NT、VB:5.0で同じ処理をしていたんですが、(今回のPGはVB6.0でリコンパイルしただけのもの)そのときは、リネイムも問題ありませんでした。 やはり、バージョンアップした際の弊害でしょうか?

関連するQ&A

  • FTPで存在しないファイルをGETしたときの動作について

    皆様 FTPコマンドで、FTPサーバ上に存在しないファイルをGETした場合の動作について教えてください。 Windowsのコマンドプロンプトで、FTPを使い、ファイルを取得しようとしています。 たまたま、取得対象ファイルがサーバ上に存在しない場合、サーバからのステータスコードは550であるのに、0バイトのファイルが保存されてしまいます。 これは、通常の動作でしょうか? (私の知る限り、0バイトファイルを生成するFTPクライアントは無いのですが…) あるいは、何か設定等に問題があるのでしょうか? 設定等に問題が有る可能性があれば、それを教えてください。 ちなみに環境は 【クライアント】 OS:WindowsXP SP2 【サーバ】 OS:Windows2003サーバ FTPサーバ:Microsoft FTP Service(IIS) です。 よろしくお願いします。

  • vbでFTPサーバーに対して、サーバー上でのファイル複製(コピー&ペー

    vbでFTPサーバーに対して、サーバー上でのファイル複製(コピー&ペースト)させたいのですが、どうしたらいいのでしょうか? vbでFTPクライアント機能を作っていて、既に、FTPサーバーへのファイルアップロード、ローカルへのダウンロード、ファイルやディレクトリの削除といった処理は実現できました。 今度は、FTPサーバー上にある既存のファイルを複製したいのですが、そのような命令が無いため、どうしたらいいのか考えています。 例えば、ローカルにダウンロードし、それをリネームして再度アップロードすれば同じ結果にはなりますが、効率が悪すぎますしネットワークに対しても迷惑です・・・。 FTPサーバー上で既存のファイルを複製するにはどうしたらいいですか?? 分かる方お願いします。

  • ファイルサーバの同期方法

    お世話になります。 現在サーバに各種データ(PDF、動画、画像等)を格納し、各クライアントの自作アプリケーションと同期を取ろうと考えています。各機能は以下のようになります。 (サーバ) ・WebDAV又はftpサーバ(未定) ・ユーザ管理はMySQLなどのDBで管理する予定です。 ・他社の有償サービスなどは利用しない。 (クライアント) ・出先からインターネット経由でのアクセス ・クライアントは自社開発のクライアントアプリケーション  このクライアントアプリの同期ボタンを押すとサーバから差分更新を  行い、同期を取りたい。 (質問) Q1:上記の場合、サーバ側の構成はWebDAV,FTPサーバなどどのような  構成が望ましいでしょうか? Q2:同期をとる際、必要なフォルダ、ファイルのみ更新したいのですが、  差分の情報をどのように取得すればよいでしょうか?  クライアントからサーバに問い合せてファイルの日付をチェックしてダウンロード  すべきか否かをファイルごとに判断するのは避けたいのですが。 お手数掛けますが、ご教示願います。

  • VB6.0でFTPでのファイルの送受信

    VB6.0でFTPでのファイルの送受信(下記(1))をしようと考えております。 尚、コンポーネントは、インターネットトランスファコントロール(Inet)を使用しております。 (1)"リモートサーバーに対して、複数件のファイルを送信し、無事転送が完了したら(リモートサーバー の指定フォルダに送信された複数件のファイルがあるのを確認後)、  クライアント側のファイル(リモートサーバーに送信が済んだファイル)を消す" という処理を考えております。 ここで、質問なのですが (1)vbを使ったFTP転送で、複数件のファイルを一括転送(mputコマンドの使用)は、可能か?  (2)もし、(1)が不可能の場合、    "送信するファイルをputコマンドで1つ送って、リモート側にそのファイルがあるのを    getコマンドで確認して、もしgetであれば、クライアント側のそのファイルを消す" という処理を送信するファイル数分繰り返すことになるんですか?        1つのファイルの場合に、Inet1_State_Changeイベントで、ループさせstate = 12 の時( リモート側に正常に送信されたと考えて)、クライアント側のファイルを消していいのでしょうか?    VBのヘルプを見ると、state = 12 は、get処理で使用するというようなことを書いてありますが。     以上 

  • クライアント名称の取得方法

    クライアントからサーバ環境で起動しようとしてるときに、接続されているクライアント名を取得したいのですが、VBの部品か方法を教えてください。 環境は Windows2000サーバ、クライアント VB Ver6

  • MS Accessを共有した際にファイルが壊れるのを回避する方法

    ちょっとしたツールをAccessで開発したいのですが、 Accessファイルを共有するとファイルが頻繁に壊れると伺いました。 そこで以下のような回避策を考えてみたのですが、 効果はありますでしょうか。 これでは、あまり意味がないとか、他に注意したほうが良い点等ありましたら、アドバイスいただければと思います。 なお、ツールは、50名位が使用(同時アクセスは3名~4名程度)予定で、 サーバ上にメインのmdbファイル(以下「サーバmdb」)を、各クライアントにもそれと連携するmdbファイル(以下「クライアントmdb」)を置くことを想定しています。 (1) データは全てサーバmdbで保持する。クライアントmdbには、入力用のフォームと、サーバmdbから取得したデータを一時的に保持するテンポラリのテーブルを持つ。 (2) クライアントmdbからサーバmdbにアクセスし、必要なデータをクライアントmdbにインポートする。 (3) クライアントmdbで、取り込んでデータをもとに、データの追加・修正を行い、当該データをサーバの所定のディレクトリにCSVで出力する (4) サーバmdbは、日次で、所定のディレクトに配置された、クライアントmdbから出力されたファイルを読み込み、データを更新する (5) (4)の読込み・更新作業中は、クライアントmdbからサーバmdbにはアクセスしない(外部ファイルで制御) 以上です。 要は、クライアントmdbが、直接サーバmdbを更新しないようにし、参照のみにするということです。 よろしくお願いします。

  • BASP21のFTPで日本語ファイル名文字コード変換方法

    BASP21のFTP機能を使って、ファイルをアップロードする処理を作成しています。 アップロード後、そのファイルをある文字列で検索して、 ファイルを読み込む処理があるのですが、検索されないため、 調べてみたところ、日本語ファイル名が文字化けしてるのがわかりました。 クライアントはWindowsなので、ファイル名は"Shift_JIS"です。 サーバーのプログラムでは、"UTF-8"で処理してるために検索されないことがわかりました。 ffftpなどのFTPソフトには、リモート側のファイル名漢字コードを設定する機能があり、 "UTF-8"でアップロードすることができましたが、BASP21には見当たりません。 いろいろ調べてもわからなかったため、ここで質問させてもらいました。

  • FTPサーバーから受信したファイル一覧からファイル名だけを取得したいです

    こんばんは。いつもお世話になっております。 VB.NET+WinXPなのですが、 FTPサーバーにログインして、 LISTコマンドでファイル一覧を要求すると 「drwxrwxr-x 2 53 53 4096 Feb 28 2006 abc」 などというファイルやフォルダの一覧がかえって来ると思うのですが、 この中からファイル名やフォルダ名だけを取得するには どうしたらよいでしょうか。 TABやコンマが入っていないので、文字列関数で切り取るにも 区切りがわからないと思うのです。 ローカルドライブのDir関数なら、FileAttribute.Nomalや.Directoryの指定でファイル名だけや ディレクトリー名だけを指定して 取得することが出来るのですが、FTPサーバーの場合からの場合はどういった方法があるでしょうか。 参考程度でも構いませんので教えて頂けるとたすかります。m(__)m

  • SQLサーバ2000へのインポート方法とその他

    こんにちは。 SQLサーバはまったくよく分からないですが、いくつか教えていただく助かります。 業務では下記のように、メインフレームから生データ(CSVファイル)をWindows2000へFTPし、SQLサーバへインポートし、その後ストアドプロシージャを実行します。 条件としては、メインフレームから不定期にFTPがおこなわれ、つづいてFTPが終了したことを通知するためのREXEC処理がコールされます。 メインフレーム ↓ Windows2000 ↓ SQLサーバ この時の具体的なテクニックを教えてほしいのですが、経験のない私のイメージはVBなどでADOを使ってファイルをインポートし、SQLサーバ内のストアドを実行するという感じです。 ↓ (1)メインフレームからファイルFTP(PUT) (2)メインフレームからVBで作成したモジュールを起動。 (3)VBはCSVファイルをDBにインポート (4)そしてVBからストアドプロシージャを実行(これは可能?) 現在はどのような仕組やツールが一般的なのでしょうか? 詳細に教えていただけると助かります。 よろしくお願いします。

  • FTP経由でファイルを転送したい

    こんばんは。どうぞよろしくお願いします。 データセンターにあるサーバからFTPを利用して毎日ファイルを転送したいのですがどうしたらいいか分からず困っております。。。 立場上技術者では無いんですが仕事がらどうしても自分でこの部分を設定する必要がありここで質問させて頂きました。 データセンター内にあるサーバは2003ServerR2です。 ファイルをコピーするクライアント側はXPと7が混在しています。VPNで接続していて今はネットドライブしてファイルをコピーしてたんですが将来的にこの方法が不可になるのでFTP経由でファイルを転送させないといけなくなります。サーバはGlobal IPを持っていてAdministratorのPassなどの情報は全てあります。 まず自分がFTP経由にファイルを転送する為に何が必要かが分かって無い状態です。本当に申し訳ないんですが完全な初心者と思って何をすれば良いか、そこからよろしくお願いします。 我ながら無理がある質問だとは重々承知してますがお力を貸して下さい! 自分なりにネットで調べた限りではデータセンター内のサーバにFTPサーバを立てる?この様な事を書いているページを見たんですが。。 よろしくお願いします!!

専門家に質問してみよう