【发布时间】:2014-04-23 07:27:04
【问题描述】:
在 Windows 应用商店应用的 .NET API 中,Path 类没有 GetFullPath 方法。不过,我需要规范化路径,这很容易使用 GetFullPath。有谁知道标准化路径的另一种方法或外部代码?我的意思是例如:
- 如果路径不以驱动器开头,则添加应用程序的路径
- 正确处理 ..\ 和 .\
GetFullPath 相当复杂,模仿功能并不容易。
【问题讨论】:
-
鸡和蛋的问题。 WinRT 中完全没有进程默认工作目录的概念。所以你也永远不需要翻译相对路径。
-
我能知道您需要完整路径的原因吗?据我所知,WinRT 中的所有文件引用都是在相对路径中完成的。如果您需要绝对路径,您通常会查看 URI,其中有一个新的构造函数,该构造函数接受 BaseUri + 您的相对路径,以获得完全限定的路径。
-
我提出问题的原因是我正在编写新版本的 C# Codebook。我尝试将本书的所有配方(代码 sn-ps)翻译成适用于 Windows 应用商店应用的 .NET API。即使我不确定一个食谱是否有用,它也可能对读过这本书的人有用。我同意完整路径在常规 Windows 应用商店应用程序中没有真正意义。但是,如果声明了 PrivateNetworkClientServer 和 EnterpriseAuthentication 或 HomeGroup 功能,例如在使用 StorageFolder.GetFolderFromPathAsync 和 StorageFile.GetFileFromPathAsync 时,它们可能是有意义的。
-
我刚刚尝试使用 StorageFile.GetFileFromPathAsync 访问文件夹和文件,并将完整的 UNC 路径或完整路径传递到可移动存储设备上的文件。如果分别声明了“PrivateNetworkClientServer”和“可移动存储”功能,它就可以工作。 UNC 路径甚至可以与本地文件一起使用!因此,使用完整路径非常有意义,至少在公司环境中(直接安装应用程序,跳过商店和认证)。
标签: windows-runtime windows-store-apps winrt-xaml