0
ファイルをネットワーク上の場所にコピーし、ファイル情報をアクセスデータベースに保存するには、次のコードを使用しています。保存先のファイル名を変更する
Dim SqlString1 As String = "INSERT INTO document (incidentid, documentno, documentname, documentpath) VALUES (@incid, @docid, @FileName, @FilePath)"
Using conn As New OleDbConnection(ConnString)
conn.Open()
If Me.TextBox1.Text <> "" Then
'THIS WILL SAVE THE FILE TO A LOCATION
Dim fileLocation As String = OpenFileDialog1.FileName
File.Copy(fileLocation, Path.Combine("\\10.1.10.5\NonConformance\Document\", Path.GetFileName(fileLocation)), True)
'THIS WILL SAVE A FILE PATH TO THE ACCESS DB
Using cmd As New OleDbCommand(SqlString1, conn)
'cmd.CommandType = CommandType.Text
cmd.Parameters.AddWithValue("@incid", doc1.Text)
cmd.Parameters.AddWithValue("@docid", doc2.Text)
cmd.Parameters.AddWithValue("@FileName", Path.GetFileName(Me.OpenFileDialog1.FileName))
cmd.Parameters.AddWithValue("@FilePath", "\\10.1.10.5\NonConformance\Document\" & Path.GetFileName(Me.OpenFileDialog1.FileName))
cmd.ExecuteNonQuery()
conn.Close()
End Using
End If
conn.Close()
End Using
私は、ユーザーがフォルダ内に既に1と同じファイル名を持つファイルをアップロードした場合、後日情報を取得しようとしたとき、それは問題が発生することを懸念しています。
ネットワークの場所にファイルをコピーするときにファイルの名前を変更する方法は誰にでも分かります。理想的には私は感謝、これは私のために問題を解決します
Path.GetFileName("INC" & Label6.Text & "DOC" & doc2.Text & ".pdf")
を読むため
Path.GetFileName(fileLocation))
要素を変更することになったのDOCIDパラメータ
正しくコピーできない場合は、エラー処理が必要になるでしょう。 –
私は実際にファイルの名前を変更します。唯一のリスクは既存のファイルをチェックすることであり、名前が変更されている場合はコピーと同じ問題があり、File.exists()でチェックすることができます。ファイルの名前を変更する:http://stackoverflow.com/questions/19150333/how-to-rename-a-file-in-net – djangojazz
File.Copyは、名前を変更する代わりに適切な名前でコピーする必要があります。ファイル名が存在するかどうかを調べ、それに接尾辞を追加することができます。または、すべてのファイルにタイムスタンプを追加するだけで、重複があるかどうかを調べる必要はありません。変数fileLocationを設定しても、2度目の使用はしません! –