Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • World
  • Users
  • Groups
Skins
  • Light
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
Code Project
  1. Home
  2. General Programming
  3. C#
  4. Cannot Resolve Path Error

Cannot Resolve Path Error

Scheduled Pinned Locked Moved C#
csharplinqhelptutorialquestion
16 Posts 10 Posters 0 Views 1 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • C Offline
    C Offline
    computerpublic
    wrote on last edited by
    #1

    I wrote this small program from an example in the C# book and it compile fine, but gives a path error for the file that I am reading. I created an external file at c:\tempPath Can someone please advise? Thanks. using System; using System.IO; using System.Collections.Generic; using System.Linq; using System.Text; namespace ConsoleApplicationTEST2 { class Program { static void Main(string[] args) { string tempPath = Path.GetTempFileName(); string tempPath2 = Path.GetTempFileName(); if (File.Exists(tempPath)) { byte[] data = File.ReadAllBytes("c:\tempPath"); File.WriteAllBytes(tempPath2, data); Console.WriteLine("First byte: {0}", data[0]); Console.WriteLine("Last byte: {0}", data[data.Length]); Console.WriteLine(data.Length); } } } } OUTPUT: Unhandled Exception: System.ArgumentException: Illegal characters in path. at System.IO.Path.CheckInvalidPathChars(String path) at System.IO.Path.GetFileName(String path) at System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share) at System.IO.File.ReadAllBytes(String path) at ConsoleApplicationTEST2.Program.Main(String[] args) in C:\Users\computerpu blic\Desktop\ConsoleApplicationTEST2\ConsoleApplicationTEST2\Program.cs:line 20 Press any key to continue . . .

    P P B V L 5 Replies Last reply
    0
    • C computerpublic

      I wrote this small program from an example in the C# book and it compile fine, but gives a path error for the file that I am reading. I created an external file at c:\tempPath Can someone please advise? Thanks. using System; using System.IO; using System.Collections.Generic; using System.Linq; using System.Text; namespace ConsoleApplicationTEST2 { class Program { static void Main(string[] args) { string tempPath = Path.GetTempFileName(); string tempPath2 = Path.GetTempFileName(); if (File.Exists(tempPath)) { byte[] data = File.ReadAllBytes("c:\tempPath"); File.WriteAllBytes(tempPath2, data); Console.WriteLine("First byte: {0}", data[0]); Console.WriteLine("Last byte: {0}", data[data.Length]); Console.WriteLine(data.Length); } } } } OUTPUT: Unhandled Exception: System.ArgumentException: Illegal characters in path. at System.IO.Path.CheckInvalidPathChars(String path) at System.IO.Path.GetFileName(String path) at System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share) at System.IO.File.ReadAllBytes(String path) at ConsoleApplicationTEST2.Program.Main(String[] args) in C:\Users\computerpu blic\Desktop\ConsoleApplicationTEST2\ConsoleApplicationTEST2\Program.cs:line 20 Press any key to continue . . .

      P Offline
      P Offline
      Peter_in_2780
      wrote on last edited by
      #2

      You need to learn about character escaping in strings.

      computerpublic wrote:

      byte[] data = File.ReadAllBytes("c:\tempPath");

      That string is (shown 1 character per line for clarity)

      c
      :
      tab character (\t)
      e
      m
      p
      P
      a
      t
      h

      What you probably mean is "c:\\tempPath" . While you are at it, read up on Unicode. Peter

      Software rusts. Simon Stephenson, ca 1994.

      C P 2 Replies Last reply
      0
      • C computerpublic

        I wrote this small program from an example in the C# book and it compile fine, but gives a path error for the file that I am reading. I created an external file at c:\tempPath Can someone please advise? Thanks. using System; using System.IO; using System.Collections.Generic; using System.Linq; using System.Text; namespace ConsoleApplicationTEST2 { class Program { static void Main(string[] args) { string tempPath = Path.GetTempFileName(); string tempPath2 = Path.GetTempFileName(); if (File.Exists(tempPath)) { byte[] data = File.ReadAllBytes("c:\tempPath"); File.WriteAllBytes(tempPath2, data); Console.WriteLine("First byte: {0}", data[0]); Console.WriteLine("Last byte: {0}", data[data.Length]); Console.WriteLine(data.Length); } } } } OUTPUT: Unhandled Exception: System.ArgumentException: Illegal characters in path. at System.IO.Path.CheckInvalidPathChars(String path) at System.IO.Path.GetFileName(String path) at System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share) at System.IO.File.ReadAllBytes(String path) at ConsoleApplicationTEST2.Program.Main(String[] args) in C:\Users\computerpu blic\Desktop\ConsoleApplicationTEST2\ConsoleApplicationTEST2\Program.cs:line 20 Press any key to continue . . .

        P Offline
        P Offline
        PIEBALDconsult
        wrote on last edited by
        #3

        Yeah, what he said. Or you could use a verbatim string -- @"c:\tempPath" .

        P 1 Reply Last reply
        0
        • C computerpublic

          I wrote this small program from an example in the C# book and it compile fine, but gives a path error for the file that I am reading. I created an external file at c:\tempPath Can someone please advise? Thanks. using System; using System.IO; using System.Collections.Generic; using System.Linq; using System.Text; namespace ConsoleApplicationTEST2 { class Program { static void Main(string[] args) { string tempPath = Path.GetTempFileName(); string tempPath2 = Path.GetTempFileName(); if (File.Exists(tempPath)) { byte[] data = File.ReadAllBytes("c:\tempPath"); File.WriteAllBytes(tempPath2, data); Console.WriteLine("First byte: {0}", data[0]); Console.WriteLine("Last byte: {0}", data[data.Length]); Console.WriteLine(data.Length); } } } } OUTPUT: Unhandled Exception: System.ArgumentException: Illegal characters in path. at System.IO.Path.CheckInvalidPathChars(String path) at System.IO.Path.GetFileName(String path) at System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share) at System.IO.File.ReadAllBytes(String path) at ConsoleApplicationTEST2.Program.Main(String[] args) in C:\Users\computerpu blic\Desktop\ConsoleApplicationTEST2\ConsoleApplicationTEST2\Program.cs:line 20 Press any key to continue . . .

          B Offline
          B Offline
          BobJanova
          wrote on last edited by
          #4

          Or: "c:/temppath". .Net allows the separator to go either way.

          P 1 Reply Last reply
          0
          • B BobJanova

            Or: "c:/temppath". .Net allows the separator to go either way.

            P Offline
            P Offline
            Pete OHanlon
            wrote on last edited by
            #5

            BobJanova wrote:

            .Net allows the separator to go either way.

            There are soooooo many jokes just crawling all over that statement.

            *pre-emptive celebratory nipple tassle jiggle* - Sean Ewington

            "Mind bleach! Send me mind bleach!" - Nagy Vilmos

            My blog | My articles | MoXAML PowerToys | Mole 2010 - debugging made easier - my favourite utility

            B 1 Reply Last reply
            0
            • P Pete OHanlon

              BobJanova wrote:

              .Net allows the separator to go either way.

              There are soooooo many jokes just crawling all over that statement.

              *pre-emptive celebratory nipple tassle jiggle* - Sean Ewington

              "Mind bleach! Send me mind bleach!" - Nagy Vilmos

              My blog | My articles | MoXAML PowerToys | Mole 2010 - debugging made easier - my favourite utility

              B Offline
              B Offline
              BobJanova
              wrote on last edited by
              #6

              Yes, but this is a serious forum, so I thought it would be okay :-\

              P 1 Reply Last reply
              0
              • B BobJanova

                Yes, but this is a serious forum, so I thought it would be okay :-\

                P Offline
                P Offline
                Pete OHanlon
                wrote on last edited by
                #7

                BobJanova wrote:

                Yes, but this is a serious forum,

                Is it? Good gravy man, that's news to me.

                *pre-emptive celebratory nipple tassle jiggle* - Sean Ewington

                "Mind bleach! Send me mind bleach!" - Nagy Vilmos

                My blog | My articles | MoXAML PowerToys | Mole 2010 - debugging made easier - my favourite utility

                1 Reply Last reply
                0
                • P Peter_in_2780

                  You need to learn about character escaping in strings.

                  computerpublic wrote:

                  byte[] data = File.ReadAllBytes("c:\tempPath");

                  That string is (shown 1 character per line for clarity)

                  c
                  :
                  tab character (\t)
                  e
                  m
                  p
                  P
                  a
                  t
                  h

                  What you probably mean is "c:\\tempPath" . While you are at it, read up on Unicode. Peter

                  Software rusts. Simon Stephenson, ca 1994.

                  C Offline
                  C Offline
                  computerpublic
                  wrote on last edited by
                  #8

                  Peter, When I make it ("C:\\tempPath", it gives me the following error: Unhandled Exception: System.IO.FileNotFoundException: Could not find file 'c:\te mpPath'. at System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath) at System.IO.FileStream.Init(String path, FileMode mode, FileAccess access, I nt32 rights, Boolean useRights, FileShare share, Int32 bufferSize, FileOptions o ptions, SECURITY_ATTRIBUTES secAttrs, String msgPath, Boolean bFromProxy, Boolea n useLongPath) at System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share) at System.IO.File.ReadAllBytes(String path) at ConsoleApplicationTEST2.Program.Main(String[] args) in C:\Users\computerpu blic\Desktop\ConsoleApplicationTEST2\ConsoleApplicationTEST2\Program.cs:line 18 Press any key to continue . . .

                  Z 1 Reply Last reply
                  0
                  • C computerpublic

                    I wrote this small program from an example in the C# book and it compile fine, but gives a path error for the file that I am reading. I created an external file at c:\tempPath Can someone please advise? Thanks. using System; using System.IO; using System.Collections.Generic; using System.Linq; using System.Text; namespace ConsoleApplicationTEST2 { class Program { static void Main(string[] args) { string tempPath = Path.GetTempFileName(); string tempPath2 = Path.GetTempFileName(); if (File.Exists(tempPath)) { byte[] data = File.ReadAllBytes("c:\tempPath"); File.WriteAllBytes(tempPath2, data); Console.WriteLine("First byte: {0}", data[0]); Console.WriteLine("Last byte: {0}", data[data.Length]); Console.WriteLine(data.Length); } } } } OUTPUT: Unhandled Exception: System.ArgumentException: Illegal characters in path. at System.IO.Path.CheckInvalidPathChars(String path) at System.IO.Path.GetFileName(String path) at System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share) at System.IO.File.ReadAllBytes(String path) at ConsoleApplicationTEST2.Program.Main(String[] args) in C:\Users\computerpu blic\Desktop\ConsoleApplicationTEST2\ConsoleApplicationTEST2\Program.cs:line 20 Press any key to continue . . .

                    V Offline
                    V Offline
                    V 0
                    wrote on last edited by
                    #9

                    It looks like you want to 'copy' a file from one directory to another. You give it 2 arguments: source and destination. correct? In that case I would rather go for:

                    byte[] data = File.ReadAllBytes(tempPath);

                    "C:\tempPath" denotes a directory ,not a file. PS: note that the other comments are valid, the \ backslash character needs to be escaped as follows.

                    "C:\\tempPath\\"
                    //or
                    @"C:\tempPath\"
                    //I would not use this: "C:/tempPath/", the / character is used in URL's and might work confusing.

                    Another thing is see going wrong is this line:

                    Console.WriteLine("Last byte: {0}", data[data.Length]);

                    //it should be
                    Console.WriteLine("Last byte: {0}", data[data.Length-1]);
                    //or it will give you an IndexOutOfBounsException

                    Hope this helps.

                    V.

                    1 Reply Last reply
                    0
                    • C computerpublic

                      I wrote this small program from an example in the C# book and it compile fine, but gives a path error for the file that I am reading. I created an external file at c:\tempPath Can someone please advise? Thanks. using System; using System.IO; using System.Collections.Generic; using System.Linq; using System.Text; namespace ConsoleApplicationTEST2 { class Program { static void Main(string[] args) { string tempPath = Path.GetTempFileName(); string tempPath2 = Path.GetTempFileName(); if (File.Exists(tempPath)) { byte[] data = File.ReadAllBytes("c:\tempPath"); File.WriteAllBytes(tempPath2, data); Console.WriteLine("First byte: {0}", data[0]); Console.WriteLine("Last byte: {0}", data[data.Length]); Console.WriteLine(data.Length); } } } } OUTPUT: Unhandled Exception: System.ArgumentException: Illegal characters in path. at System.IO.Path.CheckInvalidPathChars(String path) at System.IO.Path.GetFileName(String path) at System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share) at System.IO.File.ReadAllBytes(String path) at ConsoleApplicationTEST2.Program.Main(String[] args) in C:\Users\computerpu blic\Desktop\ConsoleApplicationTEST2\ConsoleApplicationTEST2\Program.cs:line 20 Press any key to continue . . .

                      L Offline
                      L Offline
                      Luc Pattyn
                      wrote on last edited by
                      #10

                      computerpublic wrote:

                      static void Main(string[] args)

                      string tempPath = Path.GetTempFileName();
                      string tempPath2 = Path.GetTempFileName();
                      if (File.Exists(tempPath))
                      {
                      byte[] data = File.ReadAllBytes("c:\tempPath");

                      Oh my. 1. As Path.GetTempFileName() tries to provide you with a randomly chosen file name in order NOT to clash with existing files, how on earth do you expect File.Exists() to ever return true? 2. Code should be put inside PRE tags, to preserve formatting and improve readability. 3. And if there is some code sitting in between both method calls, you really should have indicated so. 4. There is absolutely no relation between a variable called tempPath, and a file path with the value @"C:\tempPath". Did you skip your morning coffee? :confused:

                      Luc Pattyn [My Articles] Nil Volentibus Arduum

                      C P 2 Replies Last reply
                      0
                      • C computerpublic

                        Peter, When I make it ("C:\\tempPath", it gives me the following error: Unhandled Exception: System.IO.FileNotFoundException: Could not find file 'c:\te mpPath'. at System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath) at System.IO.FileStream.Init(String path, FileMode mode, FileAccess access, I nt32 rights, Boolean useRights, FileShare share, Int32 bufferSize, FileOptions o ptions, SECURITY_ATTRIBUTES secAttrs, String msgPath, Boolean bFromProxy, Boolea n useLongPath) at System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share) at System.IO.File.ReadAllBytes(String path) at ConsoleApplicationTEST2.Program.Main(String[] args) in C:\Users\computerpu blic\Desktop\ConsoleApplicationTEST2\ConsoleApplicationTEST2\Program.cs:line 18 Press any key to continue . . .

                        Z Offline
                        Z Offline
                        ZurdoDev
                        wrote on last edited by
                        #11

                        That's because it is a directory. You need to point to a file.

                        There are only 10 types of people in the world, those who understand binary and those who don't.

                        1 Reply Last reply
                        0
                        • L Luc Pattyn

                          computerpublic wrote:

                          static void Main(string[] args)

                          string tempPath = Path.GetTempFileName();
                          string tempPath2 = Path.GetTempFileName();
                          if (File.Exists(tempPath))
                          {
                          byte[] data = File.ReadAllBytes("c:\tempPath");

                          Oh my. 1. As Path.GetTempFileName() tries to provide you with a randomly chosen file name in order NOT to clash with existing files, how on earth do you expect File.Exists() to ever return true? 2. Code should be put inside PRE tags, to preserve formatting and improve readability. 3. And if there is some code sitting in between both method calls, you really should have indicated so. 4. There is absolutely no relation between a variable called tempPath, and a file path with the value @"C:\tempPath". Did you skip your morning coffee? :confused:

                          Luc Pattyn [My Articles] Nil Volentibus Arduum

                          C Offline
                          C Offline
                          computerpublic
                          wrote on last edited by
                          #12

                          I changed the file name to "c:\\temp" and it still does not work.

                          Richard Andrew x64R 1 Reply Last reply
                          0
                          • C computerpublic

                            I changed the file name to "c:\\temp" and it still does not work.

                            Richard Andrew x64R Offline
                            Richard Andrew x64R Offline
                            Richard Andrew x64
                            wrote on last edited by
                            #13

                            The file name is stored in your variable tempFile. Why are you giving it a string literal that says "C:\tempFile"? Try

                            byte[] fileData = File.ReadAllBytes(tempFile);

                            The difficult we do right away... ...the impossible takes slightly longer.

                            1 Reply Last reply
                            0
                            • P Peter_in_2780

                              You need to learn about character escaping in strings.

                              computerpublic wrote:

                              byte[] data = File.ReadAllBytes("c:\tempPath");

                              That string is (shown 1 character per line for clarity)

                              c
                              :
                              tab character (\t)
                              e
                              m
                              p
                              P
                              a
                              t
                              h

                              What you probably mean is "c:\\tempPath" . While you are at it, read up on Unicode. Peter

                              Software rusts. Simon Stephenson, ca 1994.

                              P Offline
                              P Offline
                              ProEnggSoft
                              wrote on last edited by
                              #14

                              5! :thumbsup:

                              1 Reply Last reply
                              0
                              • P PIEBALDconsult

                                Yeah, what he said. Or you could use a verbatim string -- @"c:\tempPath" .

                                P Offline
                                P Offline
                                ProEnggSoft
                                wrote on last edited by
                                #15

                                5! :thumbsup:

                                1 Reply Last reply
                                0
                                • L Luc Pattyn

                                  computerpublic wrote:

                                  static void Main(string[] args)

                                  string tempPath = Path.GetTempFileName();
                                  string tempPath2 = Path.GetTempFileName();
                                  if (File.Exists(tempPath))
                                  {
                                  byte[] data = File.ReadAllBytes("c:\tempPath");

                                  Oh my. 1. As Path.GetTempFileName() tries to provide you with a randomly chosen file name in order NOT to clash with existing files, how on earth do you expect File.Exists() to ever return true? 2. Code should be put inside PRE tags, to preserve formatting and improve readability. 3. And if there is some code sitting in between both method calls, you really should have indicated so. 4. There is absolutely no relation between a variable called tempPath, and a file path with the value @"C:\tempPath". Did you skip your morning coffee? :confused:

                                  Luc Pattyn [My Articles] Nil Volentibus Arduum

                                  P Offline
                                  P Offline
                                  ProEnggSoft
                                  wrote on last edited by
                                  #16

                                  5! :thumbsup:

                                  1 Reply Last reply
                                  0
                                  Reply
                                  • Reply as topic
                                  Log in to reply
                                  • Oldest to Newest
                                  • Newest to Oldest
                                  • Most Votes


                                  • Login

                                  • Don't have an account? Register

                                  • Login or register to search.
                                  • First post
                                    Last post
                                  0
                                  • Categories
                                  • Recent
                                  • Tags
                                  • Popular
                                  • World
                                  • Users
                                  • Groups