访问路径''当我尝试在特定文件夹vb.net中复制Excel时被拒绝

时间:2016-06-22 07:31:05

标签: asp.net vb.net

我按下按钮时尝试从特定文件夹上的服务器复制文件,我复制文件的代码是:

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

好的,一切都很好,我有两个不同的引用和不同的导入应用程序,但首先应用程序工作将我的文件复制到特定的文件夹中(" \ art-fs02 \ 07_ART_ECO \ 12_Samples \ 03_Samples_order \ 999_MoraruVladutBOM_Test \& #34;)但是当我尝试另一个应用程序时,文件不起作用。所有这两个应用程序都在服务器上。

当我在页面中输入相同的代码时,请给我一个错误:

  

访问路径   ' \本领域FS02 \ 07_ART_ECO \ 12_Samples \ 03_Samples_order \ 999_MoraruVladutBOM_Test \ TEST.XLS'   被拒绝。

我为第一个应用程序添加了一个带有引用的图像,其中我的代码工作,第二个应用程序的引用以及无法工作的地方。

enter image description here

我不知道为什么第一次申请我的代码工作,并复制文件,第二个申请不起作用。

我把上面的所有代码放在上面:

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

1 个答案:

答案 0 :(得分:0)

我打算将此评论作为评论,但我还没有评论,所以我不得不将其作为答案,但很多时候,当您获得路径访问权限或文件访问权限时违反很多次它可能是无效提升的原因,并且不会让你在指定路径内进行任何操作,如果你试图在编辑器中运行它,你总是可以尝试在Admin Elevation中运行编辑器,这样就会提升它所做的任何过程以及你试图测试的程序,或者你可以直接以管理员的身份运行它,看看它是否正常工作,我以前曾多次遇到过这个问题,而且大多数情况下它已经解决了。