让我们列出你发布优秀和最喜欢的扩展方法的答案.
要求是必须发布完整代码并提供示例和如何使用它的说明.
基于对该主题的高度关注,我在Codeplex上设置了一个名为extensionoverflow的开源项目.
请标记您的答案并接受将代码放入Codeplex项目中.
请发布完整的源代码而不是链接.
Codeplex新闻:
24.08.2010 Codeplex页面现在在这里:http://extensionoverflow.codeplex.com/
11.11.2008 XmlSerialize/XmlDeserialize现在已实现并且已经过单元测试.
11.11.2008仍有更多开发人员的空间.;-) 现在加入!
11.11.2008第三个贡献者加入了ExtensionOverflow,欢迎来到BKristensen
11.11.2008 FormatWith现在已实现且已经过单元测试.
09.11.2008第二个贡献者加入了ExtensionOverflow.欢迎来到chakrit.
09.11.2008我们需要更多开发人员.;-)
是否可以在线浏览OpenJDK的源代码,就像我可以使用SourceForge的项目一样?我之前从未使用过水星,所以我感到很困惑.
(注意:我不想下载源代码.我只想在线浏览它,看看如何实现某些方法.)
比较.Net中的两个路径以确定它们是否指向同一文件或目录的最佳方法是什么?
如何验证这些是否相同:
c:\Some Dir\SOME FILE.XXX
C:\\\SOME DIR\some file.xxx
Run Code Online (Sandbox Code Playgroud)更好的是:有没有办法验证这些路径指向某个网络驱动器上的同一文件:
h:\Some File.xxx
\\Some Host\Some Share\Some File.xxx
Run Code Online (Sandbox Code Playgroud)更新:
Kent Boogaart正确回答了我的第一个问题; 但我仍然很想知道我的第二个问题是否有关于比较网络驱动器上的文件和目录路径的解决方案.
更新2(我的两个问题的综合答案):
问题1:本地和/或网络文件和目录
c:\Some Dir\SOME FILE.XXX
C:\\\SOME DIR\some file.xxx
Run Code Online (Sandbox Code Playgroud)
答案:用System.IO.Path.GetFullPath例如:
var path1 = Path.GetFullPath(@"c:\Some Dir\SOME FILE.XXX");
var path2 = Path.GetFullPath(@"C:\\\SOME DIR\subdir\..\some file.xxx");
// outputs true
Console.WriteLine("{0} == {1} ? {2}", path1, path2, string.Equals(path1, path2, StringComparison.OrdinalIgnoreCase));
Run Code Online (Sandbox Code Playgroud)
问题2:本地和/或网络文件和目录
答案:使用http://briancaos.wordpress.com/2009/03/05/get-local-path-from-unc-path/上发布的GetPath方法
我如何比较2个字符串以确定它们是否使用C/C++在Win32中引用相同的路径?
虽然这会处理很多情况但它会遗漏一些事情:
_tcsicmp(szPath1, szPath2) == 0
Run Code Online (Sandbox Code Playgroud)
例如:
正斜杠/反斜杠
相对/绝对路径.
[编辑]标题已更改为与现有C#问题匹配.
可能重复:
确定两个路径引用C#中同一文件的最佳方法
有几种方法可以指定目录位置.
例如:
\\ machineName\c $\rootPath\subPath
\\ machineName\shareName (指向subPath的共享)
C:\ rootPath\subPath
subPath(相对路径,如果已经在C:\ rootPath中)
我需要确定所有这些路径彼此"相等"(实际上是硬盘驱动器上的相同物理位置).
有什么方法可以在C#中做到这一点吗?
可能重复:
确定两个路径引用C#中同一文件的最佳方法
所以我需要比较两个Windows文件名,以确定它们是否相同.一个用户给了我,一个给了我另一个程序.那么你应该如何比较:
C:\Program Files\Application1\APP.EXE C:\Progra~1\Applic~1\APP.EXE C:\program files\applic~1\app.exe
我似乎无法找到一种方法来始终"规范化"路径,我尝试使用Path.GetFullPath(路径)和新的FileInfo(路径).FullName,似乎都没有解决这个问题.
更新:
Path.GetFullPath(path)将更正短到长名称转换但不会规范化大小写.因此需要StringComparer.OrdinalIgnoreCase.Equals(path1,path2).
我有两条路:
\\10.11.11.130\FileServer\Folder2\Folder3\
\\10.11.11.130\d$\Main\FileServer\Folder2\Folder3\
Run Code Online (Sandbox Code Playgroud)
我想检测两条路径是否相同.
我想要它,因为我试图将一个文件移动到另一个目录.因此,对于上面的路径,会抛出异常.
我知道我可以使用try和catch,但还有另外一种方法吗?
我想d$\Main从第二条路径中移除然后进行比较,但并不总是如此......
任何帮助赞赏!