C# “违约”;“保存的游戏”;文件夹

C# “违约”;“保存的游戏”;文件夹,c#,windows-7,C#,Windows 7,如果我按下开始按钮并搜索“shell:SavedGames”,它会将我带到一个似乎包含游戏保存的文件夹。还有许多其他文件夹似乎是可以使用shell:命令找到的某些类型数据的默认位置。有没有一种标准的方式可以通过编程方式访问这些文件夹?您是在说什么 感谢Cody对另一个链接的评论: 还有一个guid列表 您可能希望将PInvoke与来自的GUI一起使用 还有一个来自微软的(现在是半旧的)库,名为你在说什么 感谢Cody对另一个链接的评论: 还有一个guid列表 您可能希望将PInvoke与来自的

如果我按下开始按钮并搜索“shell:SavedGames”,它会将我带到一个似乎包含游戏保存的文件夹。还有许多其他文件夹似乎是可以使用shell:命令找到的某些类型数据的默认位置。有没有一种标准的方式可以通过编程方式访问这些文件夹?

您是在说什么

感谢Cody对另一个链接的评论:

还有一个guid列表

您可能希望将PInvoke与来自的GUI一起使用

还有一个来自微软的(现在是半旧的)库,名为

你在说什么

感谢Cody对另一个链接的评论:

还有一个guid列表

您可能希望将PInvoke与来自的GUI一起使用


还有一个微软的库(现在是半旧的),名为

,我找到了那个页面,但它没有“保存的游戏”和其他文件夹。下面是我发现的一个列表:我一直在做更多的研究,看起来解决方案可能更接近“SHGetKnownFolderPath”:是的,“保存的游戏”只存在于Vista和更新版本中,这就是为什么它可能不在我给你的列表中,因为它不会为XP机器返回任何东西。这就是为什么开发人员可能会制作这么多不同的已保存游戏位置:(@Joe:有关如何获取
环境未提供的新特殊文件夹的说明,请参阅。SpecialFolder
枚举。@CodyGray这看起来是一个很好的解决方法,不过您可能应该让它检查是否获得了有效路径(
String.IsNullOrWhiteSpace(path)
)如果没有,那么也返回旧路径。
if(hr==0)
可能涵盖了这一点,但在处理IO imho时可能并不总是…安全总比抱歉好。我找到了该页面,但它没有“保存的游戏”我发现了一个列表:我一直在做更多的研究,看起来解决方案可能更接近“SHGetKnownFolderPath”:是的,“保存的游戏”只存在于Vista和更新版本中,这就是为什么它可能不在我给你的列表中,因为它不会返回任何XP机器的内容。这就是为什么开发者可能会制作这么多不同的保存游戏位置:(@Joe:See以获取有关如何获取非
环境提供的新特殊文件夹的说明。SpecialFolder
枚举。@CodyGray这看起来是一个很好的解决方法,不过您可能应该让它检查是否获取了有效路径(
String.IsNullOrWhiteSpace(path)
)如果没有,那么也返回遗留路径。
if(hr==0)
可能涵盖了这一点,但在处理IO imho时,可能并不总是…安全总比抱歉好。
Console.WriteLine("GetFolderPath: {0}", Environment.GetFolderPath(Environment.SpecialFolder.System));
FOLDERID_SavedGames

GUID{4C5C32FF-BB9D-43b0-B5B4-2D72E54EAAA4}
Display Name: Saved Games
Folder Type: PERUSER
Default Path: %USERPROFILE%\Saved Games
CSIDL Equivalent: None, new in Windows Vista
Legacy Display Name: Not applicable
Legacy Default PathNot applicable