Incorect output from the "fileparts" function
Ältere Kommentare anzeigen
Hi everyone
Here is a quick shot of my current problem:
I simply don't understand why the following commands:
Filename = 'Animation_28-Nov-2012 01:06:20_.avi';
[pathstr, baseFile, extProvided ] = fileparts(Filename);
are giving the following results:
pathstr = Animation_28-Nov-2012 01:06:\
baseFile = 20_
extProvided = .avi
Indeed, as you can notice, after the second ":" character is added a "\" which is interpreted as the file path of the file.
Why is there a "\" character ?! I simply don't understand. I tried to go through the help file but without any success.
Any idea would be very helpful, thank you for your help.
1 Kommentar
John Petersen
am 28 Nov. 2012
Bearbeitet: John Petersen
am 28 Nov. 2012
What OS are you using? Windows doesn't allow colons (:) in the filename. So it seems that fileparts understands the text up to the last : to be the path and the rest of the string to be the filename.
Akzeptierte Antwort
Weitere Antworten (2)
Greg
am 28 Nov. 2012
per isakson
am 28 Nov. 2012
Windows 7 help says:
Which characters can't be used in a file name?
You can't use any of the following characters in a file name: \ / ? : * " > < |
However, on a Windows system it is possible to create files, with invalid names. Don't ask me how, but I know because I get such files sent to me.
Obviously, filepart doesn't check for the validity of the file name.
2 Kommentare
Jan
am 28 Nov. 2012
While "C:\" is the disk C, "C:" is the current folder on the disk C. Therefore Matlab appends a backslash after a colon.
You can create invalid filenames using the low-level functions. The most ugly way is to write directly in the name table of the file system. It's like using a MEX function to create field names like the empty string or a space. It works using dynamic field names: "S.('')", but of course Matlab is driven out of its specifications and crashs must be expected.
Daniel Shub
am 28 Nov. 2012
I think these limitations are due to Windows and not the filesystem (NTFS). I am pretty sure if I mount an NTFS filesystem with Linux I can create these "invalid" names pretty easily.
Kategorien
Mehr zu File Operations finden Sie in Hilfe-Center und File Exchange
Produkte
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!