【问题标题】:Writing PDF in C:\ folder在 C:\ 文件夹中写入 PDF
【发布时间】: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

标签: vb.net winforms


【解决方案1】:

Chris Dunaway 的回答(在 cmets 中)是正确的:

...查看此文件夹:C:\Users\User_name\‌​AppData\Local\Virtual‌​Store 并查看您的文件是否在那里。 Windows 不允许将文件写入某些文件夹,并以静默方式将它们重定向到虚拟存储...

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-03-26
    • 1970-01-01
    • 1970-01-01
    • 2021-12-08
    • 2022-06-29
    相关资源
    最近更新 更多