On Mar 11, 7:17 pm, Tim Golden <m...@timgolden.me.uk> wrote: > venutaurus...@gmail.com wrote: > > On Mar 11, 6:41 pm, Tim Golden <m...@timgolden.me.uk> wrote: > >> venutaurus...@gmail.com wrote: > >>> On Mar 11, 5:19 pm, Tim Golden <m...@timgolden.me.uk> wrote: > >>>>> Here is my code snippet which you will be interested in: > >>>> Indeed. > >>>>> file = ur'\\?\C:\\TestDataSet\DeepPaths > >>>>> \DeepPathLevel01\DeepPathLevel02\DeepPathLevel03\DeepPathLevel04\DeepPathLe > >>>>> > >>>>> vel05\DeepPathLevel06\DeepPathLevel07\DeepPathLevel08\DeepPathLevel09\DeepP > >>>>> > >>>>> athLevel10\DeepPathLevel11\DeepPathLevel12\DeepPathLevel13\DeepPathLevel14\ > >>>>> DeepPathLevel15\DeepPathLevel16\DeepPathLevel172.txt' > >>>> And what happens if you remove that second double-backslash, > >>>> the one between C: and TestDataSet? > >>>> TJG > >>> --------------------------------------------------------------------------- > >>> ------------- > >>> Even if I give the file path as below > >>> file = ur'\\?\C:\TestDataSet\DeepPaths > >>> \DeepPathLevel01\DeepPathLevel02\DeepPathLevel03\DeepPathLevel04\DeepPathLe > >>> > >>> vel05\DeepPathLevel06\DeepPathLevel07\DeepPathLevel08\DeepPathLevel09\DeepP > >>> > >>> athLevel10\DeepPathLevel11\DeepPathLevel12\DeepPathLevel13\DeepPathLevel14\ > >>> DeepPathLevel15\DeepPathLevel16\DeepPathLevel172.txt' > >>> I am still getting the exception: > >>> Traceback (most recent call last): > >>> File "C:\JPDump\test.py", line 29, in <module> > >>> renameStubs(file) > >>> File "C:\JPDump\test.py", line 12, in renameStubs > >>> os.chdir (path) > >>> WindowsError: [Error 206] The filename or extension is too long: u'\\\ > >>> \?\\C:\\TestDataSet\\DeepPaths\\DeepPathLevel01\\DeepPathLevel02\ > >>> \DeepPathLevel03\\DeepPathLevel04\\DeepPathLevel05\\DeepPathLevel06\ > >>> \DeepPathLevel07\\DeepPathLevel08\\DeepPathLevel09\\DeepPathLevel10\ > >>> \DeepPathLevel11\\DeepPathLevel12\\DeepPathLevel13\\DeepPathLevel14\ > >>> \DeepPathLevel15\\DeepPathLevel16\\' > >> Well, the source for os.chdir under Windows uses the Win32 > >> SetCurrentDirectoryW API as expected. What is not expected > >> is that the MS docs for that function: > > >> http://msdn.microsoft.com/en-us/library/aa365530(VS.85).aspx > > >> still seem to suggest that you can't exceed MAX_PATH (ie 260) > >> characters. And indeed, attempting to do a mkdir at the command > >> line of something longer than that will also fail. > > >> Hmmm.. maybe the usual advice for naming files \\?\... doesn't > >> apply to directory paths? > > >> Do you have an already existing full pathname that long? > > >> TJG > > > Yes Sir, > > My application demands me to create deep paths of (1023) long. > > I've cross checked it and the folder actually exists. > > Well, a little bit of experimentation shows that you can > *create* paths this deep (say, with os.mkdir). But you > can't actually set the current directory to it. So the > next question is: do you actually need to be *in* that > directory, rather than simply to reference it? > > In other words, you can do this (assuming you have a c:\temp): > > <code> > import os > for i in range (1, 15): > os.mkdir (ur"\\?\c:\temp\%s" % "\\".join (100 * "c" for j in range (i))) > > </code> > > But you can't then os.chdir to it. You're hitting the limits of > the OS. Try accessing files directly within the structure > you're using. (ie without chdir-ing there first). > > TJG
Sir, My application has to rename a file in that folder.For that I had to do a os.chdir() to that folder. Otherwise if I do a os.rename (deeppath\file1,file2), it is creating a new file in the current working directory with the new name and leaving the original file as it is which is not intended :-(. So, can you suggest me any work around for this? Thank you Venu. -- http://mail.python.org/mailman/listinfo/python-list