2015-10-17 112 views
0

嗨,我已經使用的代碼波紋管成功的開始,但是我不知道我這樣做,它停止的文件夾下創建文件MessageIO.dat(ProgramFiles)\UniWin Activator DataFile.Create(路徑)錯誤VB.NET

我使用該代碼:(結果:僅創建文件夾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) 

什麼是創建一個文件的方式? (我已經擁有管理權限)

+0

第二個代碼中的錯誤是什麼? –

+0

檢查字符串UniWinPath最後是否不包含反斜槓。這兩個字符串合併後可能會出現雙黑點 - 我不知道它是否有所作爲,但值得一試 –

+0

問題已解決,第二種情況:錯誤是「無法找到路徑的一部分」 –

回答

0

您的第一個代碼非常好。只需將Dim MsgIO = Path.Combine(UniWinPath, "\MessageIO.dat")更改爲Dim MsgIO = Path.Combine(UniWinPath, "MessageIO.dat")即可。 (去掉反斜槓)。 Path.Combine自動添加一個。和往常一樣,要訪問特殊目錄,請確保您擁有管理員權限。最後兩個代碼不起作用的原因是File.Create在現有目錄中創建了一個文件。它不能創建目錄本身。

0

組合路徑時,不應在開始第二個路徑項目時指定「\」字符,因爲這將意味着根路徑!例如, Path.Combine(「D:\ Folder1」,「\ MessageIO.dat」)將導致「\ MessageIO.dat」。但您必須編寫Path.Combine(「D:\ Folder1」,「MessageIO.dat」),它將返回「D:\ Folder1 \ MessageIO.dat」

注意:在Windows 7或更高版本中,像Program Files這樣的文件夾需要特殊的權限!檢查您的應用程序是否具有此類權限(您可以先測試其他諾曼文件夾,以確保您的代碼的其他部分可以)

+0

我會嘗試這目前,順便說一句我已經有app.manifest文件 –

+0

管理員權限,但通過增加1件事情:創建目錄,然後創建文件messageio.dat –

+0

我說你必須刪除第一個反斜槓在path.combine中開始第二個參數。接受的答案是一樣的,你爲什麼不接受我的? –