c# - 创建指向目录的符号链接(symbolic link)的问题

标签 c# .net

我一直致力于开发一个程序来管理文件夹的符号链接(symbolic link),效果很好,直到我转而在 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 下开发时运行良好,但此后突然停止运行。我希望这些信息足以清除一些东西,否则请询问。

最佳答案

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

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

关于c# - 创建指向目录的符号链接(symbolic link)的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16504964/

相关文章:

c# - 如何在wpf中获取文本框的绑定(bind)

c# - 在服务器应用程序中存储配置信息的最佳方法是什么? (无数据库)

.net - 如何使用 Sandbox 在 .NET 中创建插件模型?

c# - 如何将 TableLayoutPanel 的底行滚动到 View 中

c# - 业务逻辑分离

c# - 访问 json 文件中的子字段

c# - 如何在 Debian 上成功安装完整的 Mono Develop IDE?

c# - 验证码的替代解决方案

c# - EF Core 5 在迁移中创建表两次

c# - 在 C# 中触发 Google Analytics 重定向