我使用 VS 2008 创建了一个桌面应用程序。
当我在本地运行它时,一切正常。
我共享了我的输出文件夹(不允许网络用户更改我的文件)并从我们内部网上的另一台 Vista 计算机上运行我的 exe。
运行共享 exe 时,我在尝试读取文件时收到“System.UnauthorizedAccessException”。
如何授予允许读取文件的权限?我应该更改代码吗?我应该授予对 Vista 计算机上的应用程序\文件夹的权限吗?如何?
笔记:
我不使用 ClickOnce。应用程序应使用 xcopy 分发。
我的应用程序目标框架是“.Net Framework 2.0”
在 Vista 计算机上,“controlPanel | UninstallOrChangePrograms”说它有“Microsoft .Net Framework 3.5 SP1”
我也尝试映射文件夹驱动器,但得到了同样的错误,只是现在文件名是“T:\my.ocx”
' ------------------------------------------------- ---------------------
' 我的代码:
Dim src As String = mcGlobals.cmcFiles.mcGetFileNameOcx()
Dim ioStream As New System.IO.FileStream(src, IO.FileMode.Open)' ------------------------------------------------- ---------------------
公共共享函数 mcGetFileNameOcx() As String
' ------------------------------------------------- ---------------------
Dim dirName As String = Application.StartupPath & "\" Dim sFiles() As String = System.IO.Directory.GetFiles(dirName, "*.ocx") Dim i As Integer For i = 0 To UBound(sFiles) Debug.WriteLine(System.IO.Path.GetFullPath(sFiles(i))) ' if found any - return the first: Return System.IO.Path.GetFullPath(sFiles(i)) Next Return "" End Function
' ------------------------------------------------- ---------------------
' 我收到的异常:
System.UnauthorizedAccessException: Access to the path '\\computerName\sharedFolderName\my.ocx' is denied. at System.IO._Error(Int32 errorCode, String maybeFullPath) at System.IO.FileStream.Init(...) at System.IO.FileStream..ctor(...) at System.IO.FileStream..ctor(String path, FileMode mode)
' ------------------------------------------------- ---------------------