Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • Home
  • SEARCH
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 37647
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: May 10, 20262026-05-10T14:35:00+00:00 2026-05-10T14:35:00+00:00

From the Immediate Window in Visual Studio: > Path.Combine(@C:\x, y) C:\\x\\y > Path.Combine(@C:\x, @\y)

  • 0

From the Immediate Window in Visual Studio:

> Path.Combine(@'C:\x', 'y') 'C:\\x\\y' > Path.Combine(@'C:\x', @'\y') '\\y' 

It seems that they should both be the same.

The old FileSystemObject.BuildPath() didn’t work this way…

  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. 2026-05-10T14:35:01+00:00Added an answer on May 10, 2026 at 2:35 pm

    This is kind of a philosophical question (which perhaps only Microsoft can truly answer), since it’s doing exactly what the documentation says.

    System.IO.Path.Combine

    ‘If path2 contains an absolute path, this method returns path2.’

    Here’s the actual Combine method from the .NET source. You can see that it calls CombineNoChecks, which then calls IsPathRooted on path2 and returns that path if so:

    public static String Combine(String path1, String path2) {     if (path1==null || path2==null)         throw new ArgumentNullException((path1==null) ? 'path1' : 'path2');     Contract.EndContractBlock();     CheckInvalidPathChars(path1);     CheckInvalidPathChars(path2);      return CombineNoChecks(path1, path2); }  internal static string CombineNoChecks(string path1, string path2) {     if (path2.Length == 0)         return path1;      if (path1.Length == 0)         return path2;      if (IsPathRooted(path2))         return path2;      char ch = path1[path1.Length - 1];     if (ch != DirectorySeparatorChar && ch != AltDirectorySeparatorChar &&             ch != VolumeSeparatorChar)          return path1 + DirectorySeparatorCharAsString + path2;     return path1 + path2; } 

    I don’t know what the rationale is. I guess the solution is to strip off (or Trim) DirectorySeparatorChar from the beginning of the second path; maybe write your own Combine method that does that and then calls Path.Combine().

    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

From within visual studio immediate window with SOS debugging extension loaded I can do
From what information I could find, they both solve the same problems - more
When I type this into the Visual Studio 2008 immediate window: ? .9 -
Does anyone know whether it's possible to stop Visual Studio 2010 from rearranging its
Is the memory from primitive data types (int, char,etc) immediately released once they leave
I'm using Visual Studio 2008. The Trace output is no longer being shown in
Is there any way to get Visual Studio debugger to display the contents of
The title says it - What happens between TestMethods in MS Visual Studio Unit
I'm an everyday C#/ASP.NET MVC/Visual Studio user and i've just started a project in
I'm trying to follow this tutorial but with the immediate window in vs2010 rather

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.