不同路径文件夹 vb.net

Different Path Folder vb.net

以防万一,我正在创建函数来处理 excel 并且在处理结束时我想将 excel 保存到我电脑的“下载”文件夹中..但是我得到了一个我的电脑和我的服务器之间的不同文件夹路径.. 当我 运行 我的应用程序使用我的电脑时,我得到路径“C:/Users/MyPCUserName/Downloads” 但是当我 运行 应用程序发布文件 (iis服务器),我得到路径“C:\Users\SYSTEM\DownloadsFE1000”..我不知道我的代码/函数有什么问题..

这是我的代码:

Private Sub myMethod(ByVal pProjectNo As String, ByVal pOrderNo As String)
    Dim dt As DataTable = ClsUploadBreakDownInquiryDB.GetFinalInspectionData(pProjectNo, pOrderNo)
    if dt.Rows.Count > 0
        
    'My Function Here
    
    Dim user As String = System.Environment.UserName
    exl_b2.SaveAs("C:\Users\" & user & "\Downloads\" & pProjectNo & "_" & Microsoft.VisualBasic.Format  (Date.Now, "yyyyMMdd_HHmmss") & ".xlsx", Excel.XlFileFormat.xlOpenXMLWorkbook)

    End If

End Sub

您可以将 up-loaded 文件保存在网络服务器上的任何地方。

但是,如果您谈论的是客户端用户 - 以及他们的浏览器下载位置?你有零,但 100% 零控制那个位置。

事实上,用户可能使用的是 iPhone 或 Android - 甚至不是台式电脑。

您在任何情况下都没有任何能力来控制用户下载文件的位置。本地计算机上的文件是 100% 不干涉的。当他们下载时,它通常会转到他们的下载文件夹 - 但用户设置控制它。

您无法在客户端计算机上抓取、查看或设置任何文件位置。我的意思是,如果你能做到这一点,那么当你来我的网站查看猫图片时?然后我的代码会在你的计算机上四处翻找——寻找名为密码的文件或名为银行等的文件并窃取它们

那么,服务器端代码隐藏了?当然,在大多数情况下,您可以将文件保存在网络服务器计算机上任何您喜欢的地方——这并不重要。

但是,如果您谈论用户及其浏览器访问您网站的客户端计算机位置?不,您拥有零信息,对用户文件零控制,甚至他们选择保存或下载此类文件的位置 - 即他们的计算机 - 浏览器出于安全原因提供保护。

在开发过程中使用 Visual Studio 时,这有时会造成混淆,因为您的计算机、浏览器和网站都在同一台计算机上 运行,但在典型的部署中,当然不是这样。因此,隐藏代码对用户本地文件系统的了解为零。

因此,您无法在客户端计算机上获取或设置任何类型的文件位置信息。

所以,保存到代码隐藏的“用户”仅适用于网络服务器“用户”的代码隐藏,与客户端用户无关。

作为一般规则,您使用和使用代码隐藏的所有文件夹?在每种情况下,它都应该是项目根目录的子文件夹。

切记:

Any markup code - urls - that is relative to your web site

Any code behind - plane jane windows path name.

因此,如果您将文件夹添加到您的项目,则可能是文件夹 UpLoadFiles。

那么,基于网络的,基于标记的将是这样的:

https://localhost:44392/UpLoadFiles/doc.pdf

因此,UpLoadFiles 只是您项目中的一个子文件夹。

但是,在隐藏代码中,您的代码始终使用 plane jane 有效 windows 文件名。那么,要将上面的内容转换为 windows 中的 plane jane 文件路径?你这样做:

    Dim strFile As String = Server.MapPath("~/UpLoadFiles/abc.txt")

    Dim strText As String = File.ReadAllText(strFile)

至此,现在的str文件是一个平面jane valid full good old fashioned windows文件名。

So, code behind = always plane jane window 路径名

因此,Web 标记和 URL = 始终是项目根目录的相对路径。

dim strTextFile  = File.ReadAllText(strFile).