Cannot save the output file as "output.scriv.txt"

Tested with “1.9.16.0 - 14 Nov 2019” on Windows 7.

  1. Click “File”, “Compile…”, “Compile”.
  2. You will be prompted to input the name of the output file.
  3. If you have “.scriv” in your filename (e.g., “output.scriv.txt”), it will be an error:

“Cannot save to a project’s folder”.

“.scriv” is the name used for the “envelope” folders that contain actual “projectname.scrivx” (note the x) project files and folders with the documents and other necessary things. No extraneous material is allowed within these envelope folders, in order to keep from confusing the program. This is why using .scriv within your proposed save file name will trigger a rejection.

In other words, try compiling to just “output.txt”, and of course not within a .scriv folder.

@DavidR, I don’t really understand what you are trying to advocate. Look:

Allowed:

Desktop
|- Test
   |- my_project.scriv
   |- output.txt

Not allowed:

Desktop
|- Test
   |- my_project.scriv
   |- output.scriv.txt

I don’t try to save the file to my_project.scriv. I save it to the normal directory, i.e. Test. It’s not possible because Scrivener don’t like “.scriv” part in the name of the file. This is just a stupid bug.

Not a bug. Let me try to do it better.

Scrivener creates folders with the filename extension “.scriv”. It’s unusual to name a folder in this way, but it allows Scrivener to do what it does in the way that it does it. The filename of all such folders is intended to be the name of your project. So you might have folders named MyNovel.scriv, All Good.scriv (for a project named “All Good”), etc. The content of each such folder is very specifically defined by the software: a file with the project’s name and the extension .scrivx; and three folders named Files, Settings, and Snapshots. All of these are created, used, and maintained by Scrivener software in the course of the user’s recording and organizing their research, concepts, test chapters, characters, plot lines, drafts, etc., etc. The user never needs to, and never should, touch them directly.

I apologize if this is over-explaining (I’m prone to that). The point is that one of the implications of this data structure is that only the program is allowed to create and maintain folders with the .scriv suffix. Hence trying to save anything with “.scriv” included anywhere in the filename, no matter where you try to save it, will result in an error message and a refusal to save. The program is trying to prevent the creation of “unmanaged” .scriv structures, and can’t tell what your intentions are.

I hope this is clearer. There is no bug here. It’s just how Scrivener works. Out of curiosity, why do you want to include .scriv in the filename?

Could it be that Scrivener checks for .scriv? If so it would be okay to omit the dot and write ’output scriv.txt’

The projects I sync with my iDevices are in a folder called Scriv Active Projects and Scrivener never objected to that.

Look…

Firstly, it would be better the program could check whether “.scriv” is the last part of the directory name. This is really very simple task. Scrivener save it’s projects as “project.scriv”, not “project.scriv.something”. Hence, there no need to ban the directories with “.scriv” in the middle.

Secondly, the computer can distinguish between files and directories. Directories have “D” attribute; files don’t have it. That is, there is no need to “protect” us from “.scriv” files.

And the 3rd point (the most important one): When we save the output file as “project.scriv.txt” (or even “project.scriv”), we don’t try to put anything inside “.scriv” entity. Instead, we create the entity. There is no rationale to prevent us from creating “.scriv” entities. This is toooooooo paternalistic.

The real answer will be very long. To put it in simple words, I need to distinguish between “normal” text files and “generated” text files. It’s all about scripting. I have a special script to copy files/directories and to backup them.

By that same logic, you can simply change your output file from.scriv.txt to .gen.txt (or .out.txt or any other string that isn’t .scriv.txt), change your scripts once, and you’re good to go instead of getting into arguments with strangers on the Internet. I suspect that the current ban on filenames with .scriv in them inside of a current Scrivener project comes from one too many support cases where people tried to monkey with the internal structure of the project. We regularly see people post who have managed to dump their backups into a Scrivener project folder. Now that you know it’s an issue, you can make the necessary change and keep right being productive with your custom, advanced workflow.

No, it’s not possible. It is limited how filenames on my or your computer are sorted.

Have you really read the 2nd and 3rd points in my post? :slight_smile:

What is the problem to create a new file entity “foo.scriv.bar” (or even “foo.scriv”) somewhere in the normal directory?

PS The cat is gorgeous.

First things first.

I will pass it on to him the next time I see him! I quite agree, thank you, but I know I’m biased. :slight_smile:

I don’t know…but if I could create *.scrv.txt and sidestep the whole issue, I would. Still fairly close in sort order.

Or projectname-scriv.txt ?

Why does it have to be a dot?

One of the scripts is to create timestamped copies (that is, backups) of the selected files or directories.

To keep the correct sorting, the “tail” (that is, the timestamp) should be added after the extension.
To keep the file ready-to-open, the extension is repeated after the tail.

Jan. 30, 2020
13:00 (1:00 pm)

document.adoc  --> document.adoc@20200130_1300.adoc
archive.tar.gz --> archive.tar.gz@20200130_1300.tar.gz
project.scriv  --> project.scriv@20200130_1300.scriv

I have another script that compiles the scrivener project when I press F12, and the filename of the output file is the same as the filename of the project. That is, when I need to compile the backup (yeah… sometimes I need), it’s not possible.

Of course I can use some dirty workaround for myself and the issue itself is not “very” big, but hey, it’s a bug, not a feature or a safety belt or something like it.

That doesn’t explain why the output file has to be named output.scriv.txt instead of output-scriv.txt.

For example, I need to compile project.scriv@20200130_1300.scriv.
The project will be opened fine.
Then I presss F12 and one of my scripts is trying to save the output file as project.scriv@20200130_1300.txt.
The name of the output file is created automatically and is based on the name of the project itself. This is for the same reason I mentioned earlier: to keep the correct sorting.

The script could create the project name to project-scriv@20200130_1300.scriv
That would solve it, wouldn’t it?

No, because sometimes it will screw up the sorting. (This is the main reason, though not the single one.)

Not if this was used on all output files.

The essence of my point is that you could solve this yourself, if you really wanted to, instead of demanding that L&L change things at their end.

I have explained the technical reasons why it’s a bug. It’s not about “what you think about”. And actually, we don’t need to discuss here my scripts or my naming system at all.

I will wait a respond from developers. Sorry, I don’t have time for talks about nothing.

Have you looked at the Scrivener 3 beta? If not, you can download it here:
viewforum.php?f=57

If the issue still exists, the beta forum is the place to call it to the attention of the development team.

Katherine

john1013, it seems to me that you have a very unusual, perhaps unique, use case and practice here. You’ve bumped up against a specific limitation of Scrivener’s file-naming conventions. If your system is such that the minor adjustments suggested here will throw it completely off, it may be that the system is too sensitive. In any case, it hardly seems fair to complain that Scrivener’s not accommodating your unique practice is a terrible bug. I invite you to search the forums here and see if you can find anyone else who finds this convention and Scrivener’s defense of it so deeply problematic.

What Scrivener does may indeed be paternalistic. I hate it that my Toyota puts up a special symbol on the dashboard when it’s cold outside. I know it’s cold outside; why tell me? But if I get really upset about it, I’ll put a piece of black tape over the indicator. Very few people have your detailed knowledge of how computers work and ought to work. Some writers barely know where the on/off switch is. It’s for them that Scrivener feels a need to put this defense in place. Until there are more of you than there are of them, I’m afraid it’s likely to remain in place.

And now I will exit your thread about nothing.

@David, may be I look too emotional or aggressive person, sorry for that. I don’t say that this bug is “terrible”. Actually, this bug is a minor one. What I tried to explain is that there are no technical or even UI/UX reasons to ban such filenames.

This ban doesn’t have anything with the issue that low-skilled people try to put backups inside scriv projects or do another silly things.

When you create scriv file - you cannot screw up anything. You just cannot.

It was simple mistake somewhere in the code. We, developers, make many errors aka bugs. Some of them are very funny or childish ones.