Using a script to auto sort file hierarchy causes error CS2001
I'm working on a project with a small team and it would be simpler if the correct files were placed in the correct folders automatically rather than people dropping things they need into the asset folder and sorting it later. This is particularly useful for the New Script function in the component window since new scripts are automatically placed in the Scripts folder instead of the Assets folder.
I used an AssetPostprocessor to detect when an asset was placed in the Assets folder and to move it into the correct folder. Unfortunately this causes a compilation failure error:
error CS2001: Source file `Assets/NewBehaviourScript.cs' could not be found
Compilation failed: 1 error(s), 0 warnings
The script looks like this :
public class FileSorter : AssetPostprocessor
{
static void OnPostprocessAllAssets(string[] importedAssets, string[] deletedAssets, string[] movedAssets, string[] movedFromAssetPaths)
{
for( int i = 0; i < importedAssets.Length; ++i)
{
//Check if the asset is within a subfolder.
bool isInAssetsDirectory = !importedAssets[i].TrimStart("Assets/".ToCharArray()).Contains("/");
if (isInAssetsDirectory)
{
SortAsset(importedAssets[i]);
}
}
}
static void SortAsset(string path)
{
if (path.EndsWith(".cs"))
{
AssetDatabase.MoveAsset(path, path.Replace("Assets/", "Assets/Scripts/"));
Debug.Log("Moved " + path.TrimStart("Assets/Scripts/".ToCharArray()) + " to scripts folder.");
}
else if (path.EndsWith(".anim"))
{ //... etc
}
I assume the problem I'm having is that the compiler isn't done processing the file when I move it. But perhaps it's something else.
I really hope someone can help me because a script like this would be very useful for all my future projects as well.
Edit: I can add that deleting the file in the Soltion Explorer window in Visual Studio does not remove the error but deleting the file placed in the Scripts folder does. Obviously this is not a solution.
Edit2 : After further testing it only seems to throw this error with scripts. The problem doesn't exist with other file types. Any solution would be greatly appreciated.
Your answer
Follow this Question
Related Questions
probuilder installation freezes 0 Answers
What is wrong with this code? 2 Answers
File.Move won't work : IOException: Win32 IO returned ERROR_ALREADY_EXISTS. Path: 0 Answers
Dropbox not playing nice with Unity- suggestions? 1 Answer
Help About this error 0 Answers