我一直致力于开发一个程序来管理文件夹的符号链接,该程序运行良好,直到我转向在 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);
使用断点,这是使用上述逻辑发送的本地变量:https://i.stack.imgur.com/zl2Ns.png https://i.stack.imgur.com/zl2Ns.png
需要注意的是,当我在 Windows 7 下开发这段代码时,它运行良好,但此后突然停止运行。我希望这是足够的信息来清除一些东西,否则,请询问。