Windows runtime 脱书本。我尝试将书中的所有配方(代码片段)翻译成适用于Windows应用商店应用程序的.NET API。即使我不确定食谱是否有用,它也可能对读这本书的人有用。我同意完整路径在常规Windows应用商店应用程序中没有实际意义。但是,如果声明了PrivateN
Windows runtime 脱书本。我尝试将书中的所有配方(代码片段)翻译成适用于Windows应用商店应用程序的.NET API。即使我不确定食谱是否有用,它也可能对读这本书的人有用。我同意完整路径在常规Windows应用商店应用程序中没有实际意义。但是,如果声明了PrivateN,windows-runtime,windows-store-apps,winrt-xaml,Windows Runtime,Windows Store Apps,Winrt Xaml,脱书本。我尝试将书中的所有配方(代码片段)翻译成适用于Windows应用商店应用程序的.NET API。即使我不确定食谱是否有用,它也可能对读这本书的人有用。我同意完整路径在常规Windows应用商店应用程序中没有实际意义。但是,如果声明了PrivateNetworkClientServer和EnterpriseAuthentication或HomeGroup的功能,则它们在使用StorageFolder.GetFolderFromPathAsync和StorageFile.GetFileFro
脱书本。我尝试将书中的所有配方(代码片段)翻译成适用于Windows应用商店应用程序的.NET API。即使我不确定食谱是否有用,它也可能对读这本书的人有用。我同意完整路径在常规Windows应用商店应用程序中没有实际意义。但是,如果声明了PrivateNetworkClientServer和EnterpriseAuthentication或HomeGroup的功能,则它们在使用StorageFolder.GetFolderFromPathAsync和StorageFile.GetFileFromPathAsync时可能有意义。我只是尝试使用StorageFile.GetFileFromPathAsync访问文件夹和文件,并传递完整的UNC路径或完整路径到可移动存储设备上的文件。如果分别声明了“PrivateNetworkClientServer”和“可移动存储”功能,则它可以工作。UNC路径甚至可以处理本地文件!因此,至少在公司环境中(直接安装应用程序,跳过商店和认证),使用完整路径是非常有意义的。。。或者使用应用程序数据文件夹(ApplicationData.Current)或下载文件夹(DownloadsFolder)或使用文件选择器或文件夹选择器的其他文件夹。。。或者(根据文档)在某些情况下使用UNC的任何网络文件夹(请参阅)。。或者如果声明了“可移动存储”功能,则用户可以访问可移动存储设备上的任何文件。。或者使用应用程序数据文件夹(ApplicationData.Current)或下载文件夹(DownloadsFolder)或使用文件选择器或文件夹选择器的其他文件夹。。。或者(根据文档)在某些情况下使用UNC的任何网络文件夹(请参阅)。。或者,如果声明了“可移动存储”功能,则用户可以访问可移动存储设备上的任何文件
public static string NormalizePath(string path)
{
if (String.IsNullOrEmpty(path) == false)
{
// Correct multiple backslashes
path = Regex.Replace(path, @"\\+", @"\");
// Correct parent directory tokens with too many points in it
path = Regex.Replace(path, @"\\\.\.+", @"\..");
// Split the path into tokens
List<string> resultingPathTokens = new List<string>();
var pathTokens = path.Split('\\');
// Iterate through the tokens to process parent directory tokens
foreach (var pathToken in pathTokens)
{
if (pathToken == "..")
{
if (resultingPathTokens.Count > 1)
{
resultingPathTokens.RemoveAt(resultingPathTokens.Count - 1);
}
}
else
{
resultingPathTokens.Add(pathToken);
}
}
// Get the resulting path
string resultingPath = String.Join("\\", resultingPathTokens);
// Check if the path contains only two chars with a colon as the second
if (resultingPath.Length == 2 && resultingPath[1] == ':')
{
// Add a backslash in this case
resultingPath += "\\";
}
return resultingPath;
}
return path;
}