質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
87.20%
FTP

FTP(File Transfer Protocol)は、ネットワークでのファイル転送を行うための通信プロトコルの1つである。

VB.NET

Microsoft Visual Basic .NETのことで、Microsoft Visual Basic(VB6)の後継。 .NET環境向けのプログラムを開発することができます。 現在のVB.NETでは、.NET Frameworkを利用して開発を行うことが可能です。

受付中

FTPサーバ向けのアップロードについて、同名ファイルが上書かれることを抑制したい。

saya24
saya24

総合スコア209

FTP

FTP(File Transfer Protocol)は、ネットワークでのファイル転送を行うための通信プロトコルの1つである。

VB.NET

Microsoft Visual Basic .NETのことで、Microsoft Visual Basic(VB6)の後継。 .NET環境向けのプログラムを開発することができます。 現在のVB.NETでは、.NET Frameworkを利用して開発を行うことが可能です。

1回答

0評価

0クリップ

3801閲覧

投稿2019/12/23 12:42

FTPサーバ側の所定フォルダへ毎回同じ名前のファイルがアップロードされる仕組みがあります。サーバ側の処理の関係で、FTPによって配置されるファイルは 同名である必要がありますが、当該機能の利用者が複数いる状況を鑑み、上書きを抑制する策を投じたいです。
FtpWebRequest にそのようなオプションは あるのでしょうか?

ASP.NET

Protected Sub btnFileUpload_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnFileUpload.Click If FileUpload1.HasFile Then Dim now As DateTime = DateTime.Now Dim Path As String = "C:\temp\" & now.ToString("yyyyMMddHHmmss") & "\" Dim fileName As String = FileUpload1.PostedFile.FileName Dim filePath As String = Path & fileName System.IO.Directory.CreateDirectory(Path) FileUpload1.SaveAs(filePath) 'アップロード先のURI Dim reqUri As New Uri("ftp://XX.XX.XX.XX/rcv/abcdefg.txt") Dim ftpReq As FtpWebRequest = FtpWebRequest.Create(reqUri) 'アップロードに設定 ftpReq.Method = WebRequestMethods.Ftp.UploadFile 'ユーザー名とパスワードを設定 ftpReq.Credentials = New NetworkCredential("9999999", "hogehoge") '要求の完了後に接続を閉じる ftpReq.KeepAlive = False 'ASCIIモードで転送する ftpReq.UseBinary = False 'PASVモードを無効にする ftpReq.UsePassive = False 'ファイルをアップロードするためのStreamを取得 Using reqStrm As Stream = ftpReq.GetRequestStream() 'アップロードするファイルを開く Using fStrm As New FileStream(filePath, FileMode.Open, FileAccess.Read) 'アップロードStreamに書き込む Dim buffer(1023) As Byte While True Dim bSize As Integer = fStrm.Read(buffer, 0, buffer.Length) If bSize = 0 Then Exit While End If reqStrm.Write(buffer, 0, bSize) End While End Using End Using lblMsg.ForeColor = Drawing.Color.Blue lblMsg.Text = "ファイルのアップロードが完了しました。" End If End Sub End Class

良い質問の評価を上げる

以下のような質問は評価を上げましょう

  • 質問内容が明確
  • 自分も答えを知りたい
  • 質問者以外のユーザにも役立つ

評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

気になる質問をクリップする

クリップした質問は、後からいつでもマイページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

  • プログラミングに関係のない質問
  • やってほしいことだけを記載した丸投げの質問
  • 問題・課題が含まれていない質問
  • 意図的に内容が抹消された質問
  • 過去に投稿した質問と同じ内容の質問
  • 広告と受け取られるような投稿

評価を下げると、トップページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

dameo

2019/12/25 07:54

質問がアバウトすぎます。 「そのようなオプション」とはどのようなオプションで、何が指定できて、各指定ごとに既存のどんな動作が具体的にどういう条件でどうなるものですか? それで実装が正確にできるレベルで具体的に記述してください。 また、FtpWebRequestは以下で解説されています(.NET Framewrok 4.8)。 https://docs.microsoft.com/ja-jp/dotnet/api/system.net.ftpwebrequest?view=netframework-4.8 そのどの辺が不明なのでしょうか?具体的に引用してください。
saya24

2019/12/26 10:15

dameo様 ご支援ありがとうございます。 >「そのようなオプション」とはどのようなオプションで、 ローカルからアップロードされるファイルの同一ファイル名が、サーバの所定フォルダ(仮想jフォルダ)に実在していない場合に限りアップロードを行いたく、同一ファイルが存在していたら、Exceptionを検知する動作はできないか? というのが希望です。サーバ上のファイルを上書きしたくないの一言ですが、相変わらず 的はずれな回答を致しておりましたら 申し訳ありません。 記事の紹介ありがとうございます。 アップロード前に 当該ファイルのダウンロードを試み、存在していないことを検知したらアップロードへ進めばよい、ということですかね... 分かりが悪くすみません。
dameo

2019/12/26 10:31

質問の訂正依頼をしたつもりなのですが… そして、そのコメントにも ・何が指定できるのか? ・各指定ごとに既存のどんな動作に影響するのか? ・各指定ごとに既存の各動作にどういう条件で影響するのか? ・各指定ごとに既存の各動作が各条件でどう変わるのか? 記述されていません。あなたが最終的にやりたいことをいくら書いても仕方ないです。 FtpWebRequestの件では、私は回答をしていません。 当然読んでいるはずのWebページのどこが疑問なのかを聞いているだけです。

まだ回答がついていません

会員登録して回答してみよう

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
87.20%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問

同じタグがついた質問を見る

FTP

FTP(File Transfer Protocol)は、ネットワークでのファイル転送を行うための通信プロトコルの1つである。

VB.NET

Microsoft Visual Basic .NETのことで、Microsoft Visual Basic(VB6)の後継。 .NET環境向けのプログラムを開発することができます。 現在のVB.NETでは、.NET Frameworkを利用して開発を行うことが可能です。