3

我一直在开发一个程序来管理文件夹的符号链接,效果很好,直到我开始在 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

1 回答 1

7

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

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

于 2013-05-12T08:49:12.637 回答