This may be a feature-request but I’m not exactly sure if this was just overlooked during the design phase of the API and whether it is intended or not.
Importing a file via StudioService:PromptImportFile
or StudioService:PromptImportFiles
will lead to the returned File
instance(s) having a name which is clipped to a maximum of 100 characters. The name (including any extension) will simply not continue past 100 characters; no warning or error is raised when this occurs. This appears to be due to an engine limitation where Name
s cannot exceed 100 characters in length.
This makes it mostly infeasible to store data in a file name since the data essentially becomes corrupted once we have more than 100 characters in the file name. This is a common use-case for me, who uses PromptImportFiles
as a way to essentially transfer luau files for editing on my phone to my PC. I use the file name to represent the hierarcy of the script in the DataModel, which regularly exceeds 100 characters. This semi-undocumented limitation (which I can only assume isn’t intended) has led me to have to manually re-import my code-edits rather than being able to use a nice plugin to automate it.
As for my particular use-case, my file names do have to be this long. This is because I wish to be able to easily determine where a file is based in the hierarcy from the name; coupled with the fact that Roblox’s PromptSaveSelection
method does not provide a way to auto-select a particular folder to place my files in (so all my saved files have to be in the same folder unless I manually change the save location )
Expected behavior
I expect to be able to retrieve the full file-name, the 100 character limit doesn’t seem intentional for something like a file-name and even if so, the limit isn’t documented anywhere other than the Name
property itself. The ideal solution would be to simply add an exception for File
instances to have Name
s longer than 100 characters. However, regardless of the actual solution; the full file name should at least be obtainable in some way.