【问题标题】:File.Create(path) error VB.NETFile.Create(path) 错误 VB.NET
【发布时间】:2016-01-16 00:22:26
【问题描述】:

嗨,我一开始就成功使用了下面的代码,但我不知道我做了什么,所以它停止在文件夹 (ProgramFiles)\UniWin Activator Data 下创建文件 MessageIO.dat

我使用了这段代码:(结果:只创建了文件夹UniWin Activator Data

Dim UniWinPath As String = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.ProgramFiles), "UniWin Activator Data")
Directory.CreateDirectory(UniWinPath)

Dim MsgIO = Path.Combine(UniWinPath, "\MessageIO.dat")
File.Create(MsgIO)

并使用了这个:(结果:命令File.Create出错)

Dim UniWinPath As String = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.ProgramFiles), "UniWin Activator Data\MessageIO.dat")
File.Create(UniWinPath)

并使用了这个:(结果:什么也没发生)

Dim UniWinPath As String = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.ProgramFiles), "UniWin Activator Data")
Dim MsgIO = Path.Combine(UniWinPath, "\MessageIO.dat")
File.Create(MsgIO)

创建该文件的方法是什么? (我已经拥有管理员权限)

【问题讨论】:

  • 第二个代码有什么错误?
  • 检查字符串 UniWinPath 的末尾是否不包含反斜杠。合并的两个字符串可能会以双黑斜线结尾 - 我不知道这是否有所不同,但值得一试
  • 问题已解决,第二种情况:错误为couldn't find a part of the path

标签: vb.net desktop-application


【解决方案1】:

您的第一个代码非常好。只需将Dim MsgIO = Path.Combine(UniWinPath, "\MessageIO.dat") 更改为Dim MsgIO = Path.Combine(UniWinPath, "MessageIO.dat")。 (删除反斜杠)。 Path.Combine 自动加一。和往常一样,要访问特殊目录,请确保您拥有管理员权限。最后两个代码不起作用的原因是File.Create 在现有目录中创建了一个文件。它不能自己创建目录。

【讨论】:

    【解决方案2】:

    组合路径时,不应在第二个路径项的开头指定“\”字符,因为这表示根路径! 例如,Path.Combine("D:\Folder1", "\MessageIO.dat") 将产生 "\MessageIO.dat"。但是您必须编写 Path.Combine("D:\Folder1", "MessageIO.dat") 它将返回 "D:\Folder1\MessageIO.dat"

    注意:在 Windows 7 或更高版本中,访问特殊文件夹(如 Program Files)需要特殊权限!检查您的应用程序是否具有此类权限。 (您可以先测试其他norman文件夹以确保您的代码的其他部分正常)

    【讨论】:

    • 我现在试试这个,顺便说一句,我已经拥有 app.manifest 文件的管理员权限
    • 这行得通,但又增加了 1 件事:创建目录,然后创建文件 messageio.dat
    • 我说你必须从 path.combine 中第二个参数的开头删除第一个反斜杠。接受的答案是一样的,为什么你不接受我的?
    • 我两者都接受,但他的回答有更多信息(如果未创建,file.create 不会自动创建目录)
    • @saeedserpooshan 这个答案值得一票。
    猜你喜欢
    • 2015-11-22
    • 1970-01-01
    • 1970-01-01
    • 2013-09-07
    • 1970-01-01
    • 2015-03-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多