WPF桌面应用程序读/写文件权限?

时间:2012-12-15 18:05:40

标签: wpf vb.net desktop-application

我正在编写我的第一个WPF应用程序,当我试图将我的序列化文件保存到PC上的任何路径时,我收到一个UnauthorizedAccessException(意味着拒绝访问该路径)。

这是功能:

 Public Shared Sub Serialize(Of T)(ByVal compression As Boolean, _
  ByVal path As String, ByVal instance As T)

    Try
        Dim fs As Stream = New FileStream(path, FileMode.OpenOrCreate)
        Dim bf As New BinaryFormatter
        If compression Then fs = New GZipStream(fs, CompressionMode.Compress)

        bf.Serialize(fs, instance)
        fs.Close()
    Catch ex As Exception
        MessageBox.Show(ex.Message)
    End Try
End Sub

我知道某些系统文件夹不受限制,但无论我选择哪种驱动器,它都不会让我保存在任何地方。

1 个答案:

答案 0 :(得分:0)

如果您尝试写入系统文件或您没有权限的任何其他区域,则需要修改项目中的appmanifest.xml。

   <trustInfo xmlns="urn:schemas-microsoft-com:asm.v2"> 
   <security> 
    <requestedPrivileges> 
      <requestedExecutionLevel 
        level="requireAdministrator" 
        /> 
       </requestedPrivileges> 
       </security> 
     </trustInfo>

还有2个执行级别,它们是

a)highestAvailable
b)asInvoker