创建到目录的符号链接的问题

时间:2013-05-12 06:58:28

标签: c# .net

我一直致力于开发一个管理文件夹符号链接的程序,这个程序运行得很好,直到我继续在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下开发它时,此代码工作正常,但此后突然停止工作。我希望这足以清除一些内容,否则请问。

1 个答案:

答案 0 :(得分:5)

在进一步解决这个问题之后,我设法发现这是一个权限问题,因为您无法在Windows 8中完全关闭用户帐户控制。因此,Visual Studio使用的开发环境没有提升,可能没有运行程序。

我设法按照此处列出的步骤解决了问题:https://stackoverflow.com/a/12859334/1862405