C# Path.GetPathRoot的代码示例

通过代码示例来学习C# Path.GetPathRoot方法

通过代码示例来学习编程是非常高效的。
1. 代码示例提供了一个具体而直观的学习环境,使初学者能够立即看到编程概念和语法的实际应用。
2. 通过分析和模仿现有的代码实例,初学者可以更好地理解编程逻辑和算法的工作原理。
3. 代码实例往往涵盖了多种编程技巧和最佳实践,通过学习和模仿这些实例,学习者可以逐步掌握如何编写高效、可读性强和可维护的代码。这对于初学者来说,是一种快速提升编程水平的有效途径。


Path.GetPathRoot是C#的System.IO命名空间下中的一个方法, 小编为大家找了一些网络大拿们常见的代码示例,源码中的Path.GetPathRoot() 已经帮大家高亮显示了,大家可以重点学习Path.GetPathRoot() 方法的写法,从而快速掌握该方法的应用。

Path.GetPathRoot的代码示例1 - TryGetNormalizedPathRoot()

    using System.IO;

        public bool TryGetNormalizedPathRoot(string path, out string pathRoot, out string errorMessage)
        {
            pathRoot = null;
            errorMessage = null;
            string normalizedPath = null;

            if (!this.FileSystem.TryGetNormalizedPath(path, out normalizedPath, out errorMessage))
            {
                return false;
            }

            pathRoot = Path.GetPathRoot(normalizedPath);
            return true;
        }
    

开发者ID:microsoft,项目名称:VFSForGit,代码行数:16,代码来源:GVFSPlatform.cs

在TryGetNormalizedPathRoot()方法中,Path的代码示例类中的GetPathRoot的代码示例方法一共出现了1次, 见黄色背景高亮显示的地方,欢迎大家点赞

Path.GetPathRoot的代码示例2 - IsSupported()

    using System.IO;

        public bool IsSupported(string normalizedEnlistmentRootPath, out string warning, out string error)
        {
            warning = null;
            error = null;

            string pathRoot = Path.GetPathRoot(normalizedEnlistmentRootPath);
            DriveInfo rootDriveInfo = DriveInfo.GetDrives().FirstOrDefault(x => x.Name == pathRoot);
            string requiredFormat = "NTFS";
            if (rootDriveInfo == null)
            {
                warning = $"Unable to ensure that '{normalizedEnlistmentRootPath}' is an {requiredFormat} volume.";
            }
            else if (!string.Equals(rootDriveInfo.DriveFormat, requiredFormat, StringComparison.OrdinalIgnoreCase))
            {
                error = $"Error: Currently only {requiredFormat} volumes are supported.  Ensure repo is located into an {requiredFormat} volume.";
                return false;
            }

            if (Common.NativeMethods.IsFeatureSupportedByVolume(
                Directory.GetDirectoryRoot(normalizedEnlistmentRootPath),
                Common.NativeMethods.FileSystemFlags.FILE_RETURNS_CLEANUP_RESULT_INFO))
            {
                return true;
            }

            error = "File system does not support features required by VFS for Git. Confirm that Windows version is at or beyond that required by VFS for Git. A one-time reboot is required on Windows Server 2016 after installing VFS for Git.";
            return false;
        }
    

开发者ID:microsoft,项目名称:VFSForGit,代码行数:30,代码来源:ProjFSFilter.cs

在IsSupported()方法中,Path的代码示例类中的GetPathRoot的代码示例方法一共出现了1次, 见黄色背景高亮显示的地方,欢迎大家点赞

Path.GetPathRoot的代码示例3 - PathToDriveLetter()

    using System.IO;

        private static char PathToDriveLetter(string path)
        {
            FileInfo fi = new FileInfo(path);
            string drive = Path.GetPathRoot(fi.FullName);
            if ((drive.Length == 3) && (drive[1] == ':') && (drive[2] == '\\'))
            {
                if ((drive[0] >= 'A') && (drive[0] <= 'Z'))
                {
                    return drive[0];
                }

                if ((drive[0] >= 'a') && (drive[0] <= 'z'))
                {
                    return char.ToUpper(drive[0]);
                }
            }

            // A bogus path or a UNC path.  This should not happen since the path should already
            // have been validated.
            throw new ArgumentException($"Could not map path '{path}' to a drive letter.");
        }
    

开发者ID:microsoft,项目名称:VFSForGit,代码行数:23,代码来源:WindowsPhysicalDiskInfo.cs

在PathToDriveLetter()方法中,Path的代码示例类中的GetPathRoot的代码示例方法一共出现了1次, 见黄色背景高亮显示的地方,欢迎大家点赞

Path.GetPathRoot的代码示例4 - TryGetDefaultLocalCacheRoot()

    using System.IO;

        public override bool TryGetDefaultLocalCacheRoot(string enlistmentRoot, out string localCacheRoot, out string localCacheRootError)
        {
            string pathRoot;

            try
            {
                pathRoot = Path.GetPathRoot(enlistmentRoot);
            }
            catch (ArgumentException e)
            {
                localCacheRoot = null;
                localCacheRootError = $"Failed to determine the root of '{enlistmentRoot}'): {e.Message}";
                return false;
            }

            if (string.IsNullOrEmpty(pathRoot))
            {
                localCacheRoot = null;
                localCacheRootError = $"Failed to determine the root of '{enlistmentRoot}', path does not contain root directory information";
                return false;
            }

            try
            {
                localCacheRoot = Path.Combine(pathRoot, GVFSConstants.DefaultGVFSCacheFolderName);
                localCacheRootError = null;
                return true;
            }
            catch (ArgumentException e)
            {
                localCacheRoot = null;
                localCacheRootError = $"Failed to build local cache path using root directory '{pathRoot}'): {e.Message}";
                return false;
            }
        }
    

开发者ID:microsoft,项目名称:VFSForGit,代码行数:37,代码来源:WindowsPlatform.cs

在TryGetDefaultLocalCacheRoot()方法中,Path的代码示例类中的GetPathRoot的代码示例方法一共出现了1次, 见黄色背景高亮显示的地方,欢迎大家点赞

Path.GetPathRoot的代码示例5 - AsWixVarToPath()

    using System.IO;

        /// 
        /// 'Interprets' a string as a WiX constant and expands into a proper File System path. For example "DesktopFolder"
        /// will be expanded into "[SysDrive]:\Users\[user]\Desktop". This method is a logical equivalent of C# Environment.GetFolderPath.
        /// Though it handles discrepancies between 'special folders' mapping in .NET and WiX.
        ///
        /// 
        /// The method will always be called from x86 runtime as MSI always loads ManagedUI in x86 host.
        /// From the other hand CustomActions are called in the deployment specific CPU type context.
        /// 
        /// 
        /// The path.
        /// 
        public static string AsWixVarToPath(this string path)
        {
            switch (path)
            {
                case "AdminToolsFolder":
                    return Environment.SpecialFolder.ApplicationData.ToPath().PathJoin(@"Microsoft\Windows\Start Menu\Programs\Administrative Tools");

                case "AppDataFolder": return Environment.SpecialFolder.ApplicationData.ToPath();
                case "CommonAppDataFolder": return Environment.SpecialFolder.CommonApplicationData.ToPath();

                case "CommonFiles64Folder": return Environment.SpecialFolder.CommonProgramFiles.ToPath().Replace(" (x86)", "");
                case "CommonFilesFolder": return Environment.SpecialFolder.CommonProgramFiles.ToPath();

                case "DesktopFolder": return Environment.SpecialFolder.Desktop.ToPath();
                case "FavoritesFolder": return Environment.SpecialFolder.Favorites.ToPath();

                case "ProgramFiles64Folder": return Environment.SpecialFolder.ProgramFiles.ToPath().Replace(" (x86)", "");
                case "ProgramFilesFolder": return Environment.SpecialFolder.ProgramFiles.ToPath();

                case "MyPicturesFolder": return Environment.SpecialFolder.MyPictures.ToPath();
                case "SendToFolder": return Environment.SpecialFolder.SendTo.ToPath();
                case "LocalAppDataFolder": return Environment.SpecialFolder.LocalApplicationData.ToPath();
                case "PersonalFolder": return Environment.SpecialFolder.Personal.ToPath();

                case "StartMenuFolder": return Environment.SpecialFolder.StartMenu.ToPath();
                case "StartupFolder": return Environment.SpecialFolder.Startup.ToPath();
                case "ProgramMenuFolder": return Environment.SpecialFolder.Programs.ToPath();

                case "System16Folder": return Path.Combine("WindowsFolder".AsWixVarToPath(), "System");
                case "System64Folder": return Environment.SpecialFolder.System.ToPath();
                case "SystemFolder": return Is64OS() ? Path.Combine("WindowsFolder".AsWixVarToPath(), "SysWow64") : Environment.SpecialFolder.System.ToPath();

                case "TemplateFolder": return Environment.SpecialFolder.Templates.ToPath();
                case "WindowsVolume": return Path.GetPathRoot(Environment.SpecialFolder.Programs.ToPath());
                case "WindowsFolder": return Environment.SpecialFolder.System.ToPath().PathGetDirName();
                case "FontsFolder": return Environment.SpecialFolder.System.ToPath().PathGetDirName().PathJoin("Fonts");
                case "TempFolder": return Path.GetTempPath();
                // case "TempFolder": return Path.GetDirectoryName(Environment.SpecialFolder.Desktop.ToPath().Ge, @"Local Settings\Temp");
                default:
                    return path;
            }
        }
    

开发者ID:oleg-shilo,项目名称:wixsharp,代码行数:56,代码来源:SharedExtensions.cs

在AsWixVarToPath()方法中,Path的代码示例类中的GetPathRoot的代码示例方法一共出现了1次, 见黄色背景高亮显示的地方,欢迎大家点赞

Path.GetPathRoot的代码示例6 - GetProjectLinkedFolder()

    using System.IO;

        /// 
        /// Gets a string meant to be used as a ItemGroupItem.LinkedFolder. This property controlls how the items get organised
        /// in the Solution Explorer in Visual Studio, otherwise known as filters. 
        /// 
        /// For relative paths, a filter is created by removing any "traverse parent folder" (../) elements from the beginning 
        /// of the path and using the remaining folder structure. 
        /// 
        /// For absolute paths, the drive letter is removed and the remaining folder structuer is used. 
        /// 
        /// Path to the ItemGroupItem's file.
        /// Path to the folder in which the project file will be located.
        /// The Project which the ItemGroupItem is a part of.
        /// Returns null if the file is in or under the projectPath, meaning it's within the project's influencec and is not a link.
        /// Return empty string if the file is in the project.SourceRootPath or project.RootPath, not under it
        /// Returns a valid filter resembling a folder structure in any other case. 
        /// 
        internal static string GetProjectLinkedFolder(string sourceFile, string projectPath, Project project)
        {
            // file is under the influence of the project and has no LinkFolder
            if (Util.PathIsUnderRoot(projectPath, sourceFile))
                return null;
            
            string absoluteFile = Util.PathGetAbsolute(projectPath, sourceFile);
            var directoryName = Path.GetDirectoryName(absoluteFile);

            // for files under SourceRootPath or RootPath, we use the subfolder structure 
            if (Util.PathIsUnderRoot(project.SourceRootPath, directoryName))
                return directoryName.Substring(project.SourceRootPath.Length).Trim(Util._pathSeparators);

            if (Util.PathIsUnderRoot(project.RootPath, directoryName))
                return directoryName.Substring(project.RootPath.Length).Trim(Util._pathSeparators);
            
            // Files outside all three project folders with and aboslute path use the
            // entire folder structure without the drive letter as filter
            if (Path.IsPathFullyQualified(sourceFile))
            {
                var root = Path.GetPathRoot(directoryName);
                return directoryName.Substring(root.Length).Trim(Util._pathSeparators);
            }

            // Files outside all three project folders with relative paths use their
            // relative path with all the leading "traverse parent folder" (../) removed
            // Example: "../../project/source/" becomes "project/source/"
            var trimmedPath = Util.TrimAllLeadingDotDot(sourceFile);
            var fileName = Path.GetFileName(absoluteFile);

            return trimmedPath.Substring(0, trimmedPath.Length - fileName.Length).Trim(Util._pathSeparators);
        }
    

开发者ID:ubisoft,项目名称:Sharpmake,代码行数:50,代码来源:Csproj.cs

在GetProjectLinkedFolder()方法中,Path的代码示例类中的GetPathRoot的代码示例方法一共出现了1次, 见黄色背景高亮显示的地方,欢迎大家点赞

Path.GetPathRoot的代码示例7 - WriteToSecondaryPath()

    using System.IO;

        internal static void WriteToSecondaryPath(FileInfo file, MemoryStream stream)
        {
            // If a secondary path was specified to the commandline, also write a file under that folder with
            // full path hierarchy.
            if (s_fileWritesSecondaryPath == string.Empty)
                return;

            string alternateFilePath = file.FullName;
            if (Path.IsPathRooted(file.FullName))
                alternateFilePath = file.FullName.Substring(Path.GetPathRoot(file.FullName).Length);
            FileInfo alternateFileInfo = new FileInfo(Path.Combine(s_fileWritesSecondaryPath, alternateFilePath));
            Util.FileWriteIfDifferentInternal(alternateFileInfo, stream, bypassAutoCleanupDatabase: true);
        }
    

开发者ID:ubisoft,项目名称:Sharpmake,代码行数:15,代码来源:GenerateAll.cs

在WriteToSecondaryPath()方法中,Path的代码示例类中的GetPathRoot的代码示例方法一共出现了1次, 见黄色背景高亮显示的地方,欢迎大家点赞

Path.GetPathRoot的代码示例8 - WriteGeneratedFile()

    using System.IO;

        public override bool WriteGeneratedFile(Type type, FileInfo path, MemoryStream generated)
        {
            var rootPath = RemapRoot?.FullName ?? Path.GetPathRoot(path.FullName);
            var outFileInfo = new FileInfo(path.FullName.ReplaceHeadPath(rootPath, Output.FullName));
            var refFileInfo = new FileInfo(path.FullName.ReplaceHeadPath(rootPath, Reference.FullName));

            bool isDifferent = Util.IsFileDifferent(refFileInfo, generated);
            var outputInfo = new OutputInfo(refFileInfo.FullName, outFileInfo.FullName, isDifferent ? FileStatus.Different : FileStatus.Similar);
            _referenceDifferenceMap[refFileInfo.FullName] = outputInfo;

            Util.FileWriteIfDifferentInternal(outFileInfo, generated);

            return isDifferent;
        }
    

开发者ID:ubisoft,项目名称:Sharpmake,代码行数:16,代码来源:RegressionTest.cs

在WriteGeneratedFile()方法中,Path的代码示例类中的GetPathRoot的代码示例方法一共出现了1次, 见黄色背景高亮显示的地方,欢迎大家点赞

本文中的Path.GetPathRoot方法示例由csref.cn整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。