Page MenuHome

Blender replacing spaces in filename with underscore
Closed, ResolvedPublic

Description

System Information
Ubuntu 15.04

Blender Version
Broken: 4f61de6
Worked: 909fa34

Short description of error
When saving files, Blender replaces all spaces with underscores

Exact steps for others to reproduce the error
Open or create a new file, type a file name with a space (e.g. "my file.blend") and the space will become an underscore ("my_file.blend").

Event Timeline

Dani Epstein (danilius) set Type to Bug.
Dani Epstein (danilius) created this task.
Dani Epstein (danilius) raised the priority of this task from to Needs Triage by Developer.
Bastien Montagne (mont29) closed this task as Invalid.
Bastien Montagne (mont29) claimed this task.

Thanks for the report, but no bug here, Blender checks filenames for their safety - and white space in file names, though usually well supported by modern filesystems and OSs, are not really considered good practice.

Ahh, this is a feature. Got you.

Is there any way of switching off this feature?

Isn't_it_a_bit_late_to_say_spaces_are_a_no-go?_Are_you_implying_that_up_until_now,_for_all_these_years,_Blender_has_not_been_complying_with_"safety"_standards?_Are_you_implying_that_OS_X,_Windows,_Linux,_etc._are_also_doing_something_dangerous_by_allowing_spaces_in_file_names?_I_don't_buy_that_argument._Human_readability,_user_friendliness,_and_consistency_with_other_conventions_across_operating_systems_should_be_given_precedence_in_this_case._Can_you_illustrate_a_case_where_having_spaces_in_a_.blend_file_would_be_unsafe?_Even_if_there_were_such_a_case,_you_realize_users_can_rename_their_files_from_the_file_browsers_of_their_operating_systems,_making_this_pointless._Only_when_publishing_for_the_web_would_this_"feature"_be_desirable,_but_seeing_as_.blend_is_not_a_web_file_format_it_doesn't_make_sense._If_this_were_something_internal_only_and_not_seen_by_the_end_user_I_would_agree_with_it,_but_since_it_clashes_with_the_way_people_naturally_name_their_files_I_think_it's_a_misstep_from_a_usability_perspective._At_the_very_least,_please_provide_a_means_of_disabling_this_in_Preferences.

Seth, your masterful arguments sum up my feelings on this matter beautifully, and so pithily!

I would argue strongly that this was a backward step, and a decision of perhaps one individual who had some kind of bee in their bonnet about this. I know of no other software that enforces such a ludicrous scheme.

Since I see that I am not the only one thoroughly irked by this decision, I will respectfully request for this report to be reopened and specifically just to have an option to turn off this "compliance".

I also think this should be reopened.

Using a space in file name is well supported in modern systems, but it is forcefully removed each time anyway? No offense, but this change makes no sense. For example, there are people who think that using non-English characters in file names is not good practice, but is it a reason to force all users to use file names they do not want?

File name in file system is not variable name in programming language. Personally, I consider using underscore in file names bad practice. And almost all people I know save their documents with spaces. This makes file names more readable. I honestly do not understand how having spaces everywhere except in Blender files is supposed to be beneficial to users in general. If somebody have buggy tools which cannot handle spaces and don't have time to fix them and feels too lazy to type underscore instead of space when saving in Blender, he/she may find this feature useful. But why everyone else should suffer? For example, somebody here http://blender.stackexchange.com/questions/39081/how-use-spaces-instead-of-underscores-in-file-names encountered issues because of this regression: "it is messing up the structure of some folders I previously created. Is there a way to disable it?". Nobody provided an answer how to solve this issue yet, but gandalf3 commented there: "If it's a regression that's braking things then it sounds rather bugish to me. Even if it's intended as a "feature", afaik most programs don't do this".

It causes issues for me as well. I always used spaces in file names, and had no issues. I also create 3D models in Blender to sell, and I worked hard to have consistent names and folder structure everywhere. I create files for my 3D models in other programs, such as GIMP and Krita. If I want to have consistent names, am I expected to type awkward underscores in file names in every other software and mass rename all my previous assets and search and fix all possible broken links? And what I'm supposed to do with all things I have uploaded in the past to Tubrosquid if I want consistency in file names within my products? Clearly, this is regression. To be called a feature it needs an on/off switch.

I tried to google why using spaces could be bad practice in file names, and this is what I found:
http://www.blackbaudknowhow.com/blackbaud-sphere/spaces-in-filenames-and-why-you-should-avoid-them-on-the-web.htm
"For most of us, naming files is a simple task to which we don't give a lot of thought. You give a file a descriptive name to make it easy to distinguish (e.g., “Meeting Minutes June 2011”) and click the Save button. On your local computer, this isn't an issue; however, if you plan to put that file on the internet, you may want to think about its name". So basically, space is only an issue in the URL just because it must be encoded as %20. But if I use my files locally or put them in .zip archive, I do not see any reason not to use spaces...

By the way, I often write custom scripts, and never had issues with spaces unless I make a mistake in the script like forgetting to quote something. If somebody's script or software cannot handle spaces properly in file names, it is usually considered a bug and normally fixes are welcomed.

I'm sorry for a long post. I usually like all the changes and new features in Blender, in fact, this is the first I do not like, because it causes real problems for me. I think it should be me who decides what name to give to my own file. And I also want to have consistency in my file names, and I'm not going to type underscores instead of spaces in all other software or mass rename my assets - that would be too much work, and for no good reason.

Could you please reopen this issue? At least, we really need a way to turn this "feature" off. And in my opinion, it should not be turned on by default (unless I'm missing something, I honestly do not see what benefits it will bring to most users, and since all other usual software does not do this, this behavior will be unexpected to users unless they enable it by themselves).

Personally i do not use spaces in file names. But i believe that silently enforcing a file name change can become disastrous in some situations. I see 2 scenarios in particular where an enforced change of a file name can become evil:

  1. When the file names are linked to other parts (let it be other blend files, scripts, document servers, whatever) then the user has to take care to also change the file names on those other places (maybe blender does it all by itself, but then we still have scripts, texts, other programs...).
  2. When the blend file are organized with a version control system. Then an enforced change of the filename may lead into big trouble for the administrators. You might even loose change history as far as i understand it.

Actually i wonder what sort of issues Blender has with whitespace in file names and why Blender needs to enforce special conventions which are obviously commonly accepted over all operating systems. I strongly believe that Blender should accept user's decisions as long they are legally supported regardless if that is good practice or not :)

which are obviously commonly accepted over all operating systems

I use some software a machines (3D printer) that do not except white spaces another example for windows is CMD were AFAIK you can have white spaces for directories

@Bastien Montagne (mont29), I feel strongly that we should not be replacing spaces in paths. It's totally common to use filenames with spaces even if it's inconvenient for command line users.

There is a nice place in the user preferences for an option like this :)

I have used spaces in file names for very long time, and had no issues. Even in command line. Only issue I have now is this. Forcefully replacing spaces with underscores with no way to disable this behavior, is almost like removing triangulation option and forcing triangulation even in native file format with no way to disable it, just because some other software only accepts triangulated models.

Please let me name my own files. File name is one more way to express my own style. It is also what other people will see, so readability matters.

Sometimes compatibility matters more, but for maximum compatibility removing spaces is not enough in general case - it may be necessary to limit filename to a certain portion of ASCII charset: only letters, digits and some printable symbols. But forcing this would be wrong.

For these reasons, I can't shake a feeling that this change is some quick hack, and I feel like somebody tries to force their own personal preference on me. For example, when I create .rar package with Blender files and textures to put it online, I usually use dashes, not underscores. Automatically replacing spaces with underscores is not useful to me at all. And even for underscore lovers it saves very little time, so I wonder, is it even worth to be an option? Other software usually does not replace spaces with underscores, so if somebody wants to use underscores instead of spaces, they usually have habit of typing them manually when saving a file. Anyway, if this feature going to stay, it really needs to be optional. As it is now, it actually removes a feature - the ability to use spaces in the file name when saving it, and hurts my productivity because I have to manually correct affected file names to make them readable. Please fix this...

If this "feature" is extended to its logical conclusion, Blender should not accept file names for other .blend files, images etc. that contain spaces.

The more I think about this issue, the more embarrassed I am about initially simply rolling over and accepting it as a feature.

Perhaps this highlights the necessity of having some kind of Blender Foundation forum where such feature introductions can be discussed prior to annoying the living daylights out of Blender users. I use Blender for most of my work (> 7 hours a day) so consider myself a professional on that basis alone. It would be very useful indeed to be able to discuss my requirements as a pro with other pros and the developers since it would avoid this sort of issue, and no doubt add richly to the development process.

Perhaps this highlights the necessity of having some kind of Blender Foundation forum where such feature introductions can be discussed prior to annoying the living daylights out of Blender users.

Honestly i believe that the current procedure of introducing/reviewing/accepting features for Blender is not bad at all and works well in general. Maybe this is just one of those examples where the feature itself (and its change) was so "small" for the developers that nobody really cared to make a second thought about it?

You are probably correct, both in general and in this case as well. Nonetheless, it would still be beneficial to have a Blender Foundation forum for having some kind of direct and "official" contact with the development process, perhaps with some kind of entry criterion. Blenderartists as a forum for floating ideas is a trainwreck, since - as an example - there is a very vocal minority of hobby users (not a bad thing in itself) who are more concerned with eye-candy than day-to-day utility.

This is not a criticism of the current process, but perhaps an additional, more interactive and focused way of helping to steer the direction of development.

The topic of having a place to communicate with developers about features or requesting features has been talked about a lot.
See:

It is a difficult topic for us, more difficult than it appears.

But let's not continue discussion about this here. If you want to, I'd prefer to move it to the mailing lists or IRC.

Think this isn't good behavior - spaces in names is quite normal.
While a nice convention, enforcing means for eg -

  • you cant save over an image with spaces in the name,
  • if an image with spaces is in an existing project, continuing to work with it becomes troublesome.
  • importers will happily load paths containing spaces... which will then be difficult to operate on.
  • this applies to renaming directory renaming too.

Think we should consider bringing back the old behavior 2.76a (theres already one other crash that means 2.76a is a likelyhood).

Perhaps this highlights the necessity of having some kind of Blender Foundation forum where such feature introductions can be discussed prior to annoying the living daylights out of Blender users.

Honestly i believe that the current procedure of introducing/reviewing/accepting features for Blender is not bad at all and works well in general. Maybe this is just one of those examples where the feature itself (and its change) was so "small" for the developers that nobody really cared to make a second thought about it?

Right, it doesn't make sense for *every* change to go via review process... when-to/not-to ... isn't always clear-cut.

OK, I see what everyone is saying about the forum thing, and looked up the various links. I bow to the majority.

What I find interesting is how such a drastic change made it into trunk. Was there a review process for this?

Also, how much to-ing and fro-ing will be required until we get back spaces? Or at least get an option to turn off this feature? It's driving me nuts, but at first I thought that it was only me; clearly this is not the case.

@Dani Epstein (danilius), Bastien has been doing valuable work in the file selector, rewriting parts - integrating asset management in a branch. Many smaller changes are made too, as it turns out this one isn't so popular, and in retrospect probably should have been discussed first.

(correction from @Andrew Buttery (axb), this was reported before release, but closed)
On the other hand this was in all test-builds and release candidates (over a month between first testbuild and 3rd RC), from which we had many bug reports, its surprising nobody noticed it before release too.

Hi,

I'd like to add my voice to the request to return to the 2.75a behavior.

Spaces in filenames have been around in major operating systems since the 90's (I think Windows 95 was the last one to implement support). In the 80's Amigas supported spaces in file names - one of the points we used to make fun of the MS-DOS machines at the time who were still using 8.3 format... So for Blender to regress to behavior that was common 30 years ago seems a bit extreme.

I had a brief exchange with Johnathan Williamson and it seems the UI team were not consulted on the change, which seems a little odd, though as Jonathan pointed out that they can't (and shouldn't) review every single change.

You are right Campbell, it should have had more focus through the RC process, but it is not everyone would notice it and it was reported as a bug on 25 August, so it was raised...

So hopefully there will be a 2.76a and the behavior will revert, or better still, disable the feature by default and an option in the User Prefs to enable the feature if a user wants is added. This way the effort that Bastien has put into developing the feature is not lost.

Thanks again to all the devs working on Blender - we wouldn't have such an awesome tool without you and the occasional blip is a small price to pay for a wonderful program.

  • andrew

Ouch… didn’t saw that thread was going wild… :)

So, to summarize (and explain a bit what happened):

  1. We used to be able to use any char in file names, both those generated internally (temp and cache filenames) and those defined by users.
  2. I added a 'sanitizing' func for internal-generated filenames only, based on this wiki article, where using spaces is not recommended (though obviously supported with some tricks).
  3. Later I got a report about being able to enter forbidden chars/names (on windows) in filebrowser, so I merely reused that sanitizing func here as well.

Now, since it seems spaces are really wanted back, I’ll remove them from sanitizing func checks… Still, I’d really advise avoiding them in filenames, this will end up causing you issues one day or the other (adding to examples from @Gaia Clary (gaiaclary) and @Aaron Carlisle (Blendify), MTL (OBJ) texture filenames with spaces will not work, and afaik format does not supports quoting or other similar tricks here…).

Campbell, you are quite right, and my apologies to Bastien - the new features and bug fixes are all very valuable and enormously appreciated! I did not intend to rant about the decision-making process, but it looks like it turned out that way, and that's simply not on.

One thing I actually forgot to mention regarding the forum issue was somewhere to thank all the developers! There are many small things that creep in unannounced that really make my day. The eyedropper for selecting objects, for example, and the "e" shortcut for the same thing really saves me time on a daily basis. The list continues to at least another 100 things I can think of for which I simply wanted to send a thank-you note to the developers.

Spaces are back! Yay! Thanks Bastien.

It's frightening that it takes this amount of negative feedback to re-instate standard functionality so common it can't even be designated as a feature.
Behaviour unchanged on OS-X, just downloaded latest from https://www.blender.org/download/
Are we expected to build Blender ourselves to benefit this awesome fix?

Actually, despite all my whining, it's amazing. Try doing that with Autodesk, Microsoft et al. You can wait months for bug fixes, only to find they were badly done, or even that they are ignored entirely. This speed of response is almost unheard of outside of open-source, and Blender is the crown jewel.

If you go to https://builder.blender.org/download/ you will probably find a fixed build there.

That fix will be part of 2.76a corrective release, which is expected in one week or so. Until then, you can indeed use builds from https://builder.blender.org/download/ - but beware, those are master builds, which means they contain important changes compared to official 2.76 release (afaik there’s no incompatibility currently, but there’s always a possibility of issues)…

As for “It's frightening that it takes this amount of negative feedback” etc., what I find frightening is that, if that was such a severe issue, we got so few reports about it until final release was out. If people want a real bug-free release, they should dedicate time to seriously test RC's, otherwise RC's are of not much use, and final release end up being first real release candidate (and we are doomed to 'a' releases)…

As pointed out by @Dani Epstein (danilius), Blender is an open free project, which means (among other things) that users also have their own role to play to ensure it keeps enhancing…

PS: lengthy comments in a closed report are not the best way to be noticed (developers get tons of mails from tracker, can be hard to keep track of everything that way), a mail to bf-committers ML, or even a direct contact over IRC (#blendercoders @ freenode.net) are much better ways to quickly get attention in those cases.

"no bug here" is Bastien Mantagne typical answer.
But this so called "feature" is INDEED a bug, and most of us don't like it!

Why don't you set it as an OPTION in the PREFERENCES?

Thank you.

quote from bastien

if we start adding options for such minor things, we'll end with hundred of thousands of them ;)

Technically, Luca, it's not a bug. It was indeed a pre-planned feature, which granted I amongst others found terribly annoying. If you read through all the messages, you will see that the latest builds from builder.blender.org no longer feature this "feature".

However, Bastien had the grace to realise that not everyone really thought the way he did and reversed the "feature" within 24 hours. That's right, the next build had spaces back again.

Now, this little incident highlights the pitfalls of open-source development yet is one of the finest examples of how Blender developers react. So, even though I spend a month or so fuming over this new feature, once Bastien noticed the issue he responded immediately, and very politely, despite the annoyance everyone was displaying.

Had I realised that the IRC channel was the way to go, no doubt Bastien would have responded far more quickly, so the onus lies with Blender users to make sure they know what all the channels of communication are.

By and large, this whole little incident was reasonably well handled by the Blender devs. It's unlikely you will see this level and speed of response from any competing product of similar scope (Modo, 3D Studio, yada yada yada).

OK, technically might be a WONDERFUL FEATURE...
But it's so TERRIBLY ANNOYING!

All these protests seem to confirm that.

Why can't I be free, if I'm really ill, to add my underscores MANUALLY or, if I'm in good psychic health, leave my spaces?
No. Instead, I must see all these stupid characters added to my file names.

And then I have to rename them all.
In a project where I can have some thousands files...

This makes me really sick :(

You can have your spaces back if you download a build from builder.developer.org.

Now sit in the corner and calm down.

@Luca Crisi (BugFinder), please read the previous comments, in the daily builds and the next release you can use spaces again, no need to continue arguing about it.

Thank you!

It has been such a HORRIBLE EXPERIENCE!!