2017-02-17 4 views
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パラメータ

+0

正しくコピーできない場合は、エラー処理が必要になるでしょう。 –

+0

私は実際にファイルの名前を変更します。唯一のリスクは既存のファイルをチェックすることであり、名前が変更されている場合はコピーと同じ問題があり、File.exists()でチェックすることができます。ファイルの名前を変更する:http://stackoverflow.com/questions/19150333/how-to-rename-a-file-in-net – djangojazz

+1

File.Copyは、名前を変更する代わりに適切な名前でコピーする必要があります。ファイル名が存在するかどうかを調べ、それに接尾辞を追加することができます。または、すべてのファイルにタイムスタンプを追加するだけで、重複があるかどうかを調べる必要はありません。変数fileLocationを設定しても、2度目の使用はしません! –

答えて

0

@のincid_ように名前を変更したいです応答のために。

関連する問題