ボタンを押したときに特定のフォルダのサーバーからファイルをコピーしようとしました。 :すべての良い、特定のフォルダvb.netでExcelをコピーしようとすると、パスへのアクセスが拒否されます
If System.IO.File.Exists(Server.MapPath("../../TempDownloads/" & SampleOrder & ".xls")) = True Then
System.IO.File.Copy(Server.MapPath("../../TempDownloads/" & SampleOrder & ".xls"), "\\art-fs02\07_ART_ECO\12_Samples\03_Samples_order\999_MoraruVladutBOM_Test\" & SampleOrder & ".xls", True)
Else
LBL_Error.Text = "There is no file to be copied !"
GC.Collect()
Exit Sub
End If
[OK]を、私は別のreferincesと貴様の輸入を持つ2つのアプリケーションがありますが、最初のアプリケーションの仕事で(特定のフォルダに自分のファイルをコピーするために、「\芸術-FS02 \ 07_ART_ECO \ 12_Samples \ 03_Samples_order \ 999_MoraruVladutBOM_Test \ ")しかし、私は別のapplicatiobファイルにしようとすると動作しません。 2つのアプリケーションはすべてサーバー上にあります。
は私が入れたときに、ページ内の同じコードでは、そのように私にエラーが発生します:
アクセスパス '\芸術-FS02 \ 07_ART_ECO \ 12_Samples \ 03_Samples_order \ 999_MoraruVladutBOM_Test \ Test.xlsを' に拒否されます。
私のコードが動作し、2番目のアプリケーションのために参照し、どこがうまく動作しないのかについては、参考文献と共に画像を置いています。
私がなぜ最初のアプリケーションに私のコードの仕事を知っているし、ファイルをコピーし、第二のアプリケーションは動作しませんしません。
私は、上記のページのすべての私のコードを置く:私はこのコメントにするつもりだったが、私はコメントをまだ担当者を持っていないので、私はこのANを迫らだ
Imports System.Data
Imports System.IO
Imports OfficeOpenXml
Imports System.Globalization
Imports System.Data.OleDb
Imports System.Data.SqlClient
Imports System.Configuration
Partial Class TCO_Orders_TestCopy
Inherits System.Web.UI.Page
Protected Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim SampleOrder As String = "SO-Test"
Dim Qty As String = "55"
SampleOrder = SampleOrder.Remove(0, 3)
Dim cn As New OleDbConnection
Dim cm As New OleDbCommand
cn = New OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & Server.MapPath("../../FolderBOM/BOM2.xls") & ";Extended Properties=""Excel 12.0;HDR=Yes;""")
cn.Open()
With cm
.Connection = cn
.CommandText = "UPDATE [ARO list$] set info = '" & SampleOrder & "' where [SO-info] ='DVM SO no.'"
cm = New OleDbCommand(.CommandText, cn)
cm.ExecuteNonQuery()
cn.Close()
cn.Open()
.CommandText = "UPDATE [ARO list$] set info = '" & SampleOrder & "' where [SO-info] ='Local SO no.'"
cm = New OleDbCommand(.CommandText, cn)
cm.ExecuteNonQuery()
cn.Close()
cn.Open()
.CommandText = "UPDATE [ARO list$] set info = " & Qty & " where [SO-info] ='qty'"
cm = New OleDbCommand(.CommandText, cn)
cm.ExecuteNonQuery()
cn.Close()
End With
Try
My.Computer.FileSystem.CopyFile(
Server.MapPath("../../FolderBOM/BOM2.xls"),
Server.MapPath("../../TempDownloads/" & SampleOrder & ".xls"), Microsoft.VisualBasic.FileIO.UIOption.AllDialogs, Microsoft.VisualBasic.FileIO.UICancelOption.DoNothing)
Catch ex As Exception
LBL_Error.ForeColor = System.Drawing.Color.Red
LBL_Error.Text = "This SO has BOM created !"
Exit Sub
End Try
If System.IO.File.Exists(Server.MapPath("../../TempDownloads/" & SampleOrder & ".xls")) = True Then
System.IO.File.Copy(Server.MapPath("../../TempDownloads/" & SampleOrder & ".xls"), "\\art-fs02\07_ART_ECO\12_Samples\03_Samples_order\999_MoraruVladutBOM_Test\" & SampleOrder & ".xls", True)
Else
LBL_Error.Text = "There is no file to be copied !"
GC.Collect()
Exit Sub
End If
End Sub
End Class
これが原因であるかどうかわかりませんが、ファイルを使用しようとする前に接続を破棄してください – Steve
...わかりません...どうすればよいですか? – Vladut
Try add _cn.Dispose_の直前に、接続の作成前後で、Try _Using cn = New OleDbConnection( ".... ....)の使用/終了を使用して追加してください._ – Steve