How many components do you have in the assembly?
Are they part models or assembly models?
Are they referenced in assemblies and or drawings?
Are you using any type of PDM system?
The subfolders are parts, assemblies, and weldments for a family of assemblies. Consider those three folders as a child of the next folder up. I would like to make a brother to this child. Similar products. So, I have: parent folder:/parts, weldments, assemblies. I would like to have: parent folder:/child 1 folder:/parts, weldments, assemblies, so I can create a child 2 folder, with different parts weldments and assemblies. Is it clear as mud yet?
You should be able to use the Pack & Go function to do that. That will create a copy rather than a move, but the end result should be a fully referenced copy.
You can try to add the main folder as a search path in the System Options, so if the assembly or drawing cannot find its components, it will search through the subfolders.
As per the Knowledgebase, the rules for finding references are:
1. RAM. If a file with the correct name is already in memory, it will use that file.
2. The paths specified in the Folders list on the File locations tab (Tools> Options> System Options> File locations).
3. The last path specified to open a document. When opening a parent document (e.g. an assembly), SolidWorks will search in the same directory for the referenced files.
4. The last path used by the system to open a document. This will apply if the system opened a referenced document last.
5. The path where the referenced document was located when the parent document was last saved. This is the path stored in the parent document except that the drive path (C:\, D:\) is considered to be the current drive.
6. The path where the referenced document was located when the parent document was last saved with the original disk drive designation. The absolute path name stored with the parent document.
7. If the referenced document still cannot be found, SolidWorks will ask to browse for the file.
Note that all updated reference paths in the parent document are saved when you save the parent document.
Also be aware that there are difference between the "Search Paths" and "Referenced Documents" options inside the File Locations.
Again, as per the Knowledgebase:
The purpose of "Referenced Documents" is to provide a "prefix" in case files move.
An assembly is in "C:\working\main assy"
Its parts are in "C:\working\main assy\partref"
If the entire directory is moved to "E:\newdata", add "E:\newdata" as a reference path. SolidWorks will search in the "\working\main assy" folder path underneath "E:\newdata"
If moving one component to a sub folder, add that folder manually. Referenced documents are not searched for in every folder listed for every part. If they were, performance would be drastically effected; SolidWorks would have to search every sub folder, every file, etc….
Another good piece of information from Knowledgebase:
Question: Why does SolidWorks not search the part files of the assembly in the folders mentioned under 'Search Paths'?
Answer: The file locations need to be mentioned under ‘referenced documents’ (Tools > Options > System options > File Locations > Referenced documents’), not under ‘Search Paths’.
So there you go! Good luck!