2013-05-12 81 views
2

我一直在開發一個程序來管理文件夾的符號鏈接,它工作得很好,直到我開始繼續在Windows 8計算機上工作(從Windows 7)。由於這樣做,我的CreateSymbolicLink()方法已返回錯誤代碼2.創建目錄的符號鏈接的問題

這是我有,每當我想鏈接一個目錄時調用的方法。在此之前被調用時,原來的文件夾已被移動到了什麼是destDirName

public static void LinkDirectory(string sourceDirName, string destDirName) 
{ 
    if (!CreateSymbolicLink(sourceDirName, destDirName, 0x1)) 
    { 
     MessageBox.Show("Error: Unable to create symbolic link. " + 
      "(Error Code: " + Marshal.GetLastWin32Error() + ")"); 
    } 
} 

這是從KERNEL32.DLL導入方法:

[DllImport("kernel32.dll")] 
static extern bool CreateSymbolicLink(string lpSymlinkFileName, 
    string lpTargetFileName, int dwFlags); 

和邏輯:

FileFunctions.MoveDirectory(gameOriginalSaveFolder, gameGatheredSaveFolder); 
FileFunctions.LinkDirectory(gameOriginalSaveFolder, gameGatheredSaveFolder); 
FileFunctions.HideDirectory(gameOriginalSaveFolder); 

使用斷點,這是與上述邏輯發送的當地人:http://i.imgur.com/T2Xahsq.png

請注意,當我在Windows 7下開發它時,此代碼運行正常,但自此突然停止工作。我希望這是足夠的信息來清除一些東西,否則,請詢問。

回答

4

在進一步研究之後,我發現這是一個權限問題,因爲您無法在Windows 8中完全關閉用戶帳戶控制。因此,Visual Studio使用的開發環境未提升,無法運行該程序。

我設法通過按照此處列出的步驟解決問題:https://stackoverflow.com/a/12859334/1862405