2013-05-12 89 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