【发布时间】:2016-08-12 12:30:33
【问题描述】:
我在 Windows 10 上使用 .NET 4。 我有一个用 vb.net 编写的 winform 应用程序,它使用 PDFSharp api 将 TIFF 转换为 PDF。 当我尝试将 PDF 保存到 C:\ 文件夹时,没有引发异常,但没有写入任何内容。 当我检查我是否对文件夹 C:\ 有写访问权限时,VB.NET 告诉我有。 我正在使用这段代码:
Private Function HasFolderWriteAccess(path As String) As Boolean
Try
Using inputstreamreader As New StreamReader(path)
inputstreamreader.Close()
End Using
Using inputStream As FileStream = File.Open(path, FileMode.Open, FileAccess.Write, FileShare.None)
inputStream.Close()
Return True
End Using
Catch ex As Exception
Return False
End Try
End Function
当我尝试使用 StreamWriter 写入文件时,我遇到了同样的行为:
Dim FILE_NAME As String = "C:\test2.txt"
Dim objWriter As New System.IO.StreamWriter(FILE_NAME)
objWriter.Write("Some text....")
objWriter.Close()
MessageBox.Show("Text written to file")
Windows 10 C:\ 文件夹中是否发生了某种我不知道的魔法?
感谢您的回复。
【问题讨论】:
-
C:\test2.txt: 这不是C:<TAB>est2.txt吗? -
自 Windows Vista 以来,在没有管理员权限的情况下,不允许写入驱动器的根文件夹(实际上,如果您不是以超级用户身份运行的 XP)。现在已经十多年了;是时候了解 UAC 和权限的工作原理了。
-
@Jean-FrançoisFabre:应该是 C/C++。不是 VB.Net。
-
那么检查文件夹写访问权限的好方法是什么? vb.net 告诉我 c:\ 是可写的,但实际上它不是
-
我不确定 Windows 10,但请查看此文件夹:
C:\Users\User_name\AppData\Local\VirtualStore并查看您的文件是否存在。 Windows 不允许将文件写入某些文件夹并将它们静默重定向到虚拟存储。还要检查this link