Thankyou for all the help! I managed to write a programm doing exactly what I wanted to do and it works!
I still don’t know if there actually is an XML-File in the CPR-File, but I wrote the programm so that it finds the word “GTree” in the CPR-File, ignoring any signs it can’t identify. I found out that the name of the Projectfolder and the corresponding Directory of it is always found just before the string “GTree”.
Since i know how cubase automatically calls the projectfolders I know how its String starts and ends, so I can look for this Scheme in the indixes befor “GTree”. Same for the Directory. I put both into a list and the list as a value in a dictionary with the filename as its key. After going through all files and saving Filename, Projectfoldername and Directory in the Dictionary the program then finds each corresponding projectfolder with the help of the dictionary and then renames it after the file. Now when I move projectfolder and File and it asks me where the projectfolder is, I can search for the filename and find the projectfolder.
I won’t be messing with the way cubase saves the project anymore 
Here’s the code for anyone whose interested, it’s python. If anyone ever tries to use it make sure the indentions are correct:
import glob
import os
projektdateien ={}
while True:
verzeichnis_pfad=str(input(“Verzeichnispfad zu dem umzubenennenden Ordner Bitte:”))
print(“bist du sicher, dass das 100% richtig ist??:”,verzeichnis_pfad)
feedback = input(“Wenn ja drücke j wenn nein drücke n…”)
if feedback.lower() == “n”:
print(“ok dingus, du wirst wieder an den Anfang geleitet!\n\n\n”)
elif feedback.lower() == “j”:
break
muster = “*.cpr”
for datei_pfad in glob.glob(os.path.join(verzeichnis_pfad,muster)):
with open(datei_pfad, “r”, errors=‘ignore’) as datei:
inhalt = datei.read()
index_end = inhalt.find(“GTree”)
index_start = index_end-50
start_end= inhalt[index_start:index_end]
max_wiederholungen=5
wiederholungen=0
while “Unbenannt” not in start_end and wiederholungen<max_wiederholungen:
index_start-=70
start_end= inhalt[index_start:index_end]
print(“index_start:”,index_start,“\n mit start_end inhalt:”,start_end,“\n----->unbenannt nicht enthalten”)
wiederholungen+=1
try:
index = start_end.find(“Unbenannt”)
except:
break
if index != -1:
print(“String gefunden in”,datei_pfad, “an Index in start_end:”, index)
Zeichen = “”
ordner_pfad = “”
index_ordner_pfad_anfang=start_end.find(“C:\”,index)
index_ordner_pfad_ende=start_end.find(“ï”,index_ordner_pfad_anfang)-1
ordner_pfad +=start_end[index_ordner_pfad_anfang:index_ordner_pfad_ende]
print(“ordner pfad:”,ordner_pfad)
while len(Zeichen)<13 and index<len(inhalt) and ord(start_end[index])!=0 and start_end[index]!="\\":
Zeichen += (start_end[index])
index+=1
letztes_cubase_index=datei_pfad.rfind("cubase")
datei_name=datei_pfad[letztes_cubase_index:]
projektdateien[datei_name]=[Zeichen,ordner_pfad]
print("Projektordnername:",Zeichen)
else:
print("Unbenannt nicht gefunden, Projektordner hat möglicherweise ein anderes Namensschema oder wurde schon umbenannt")
for i in projektdateien:
print(i,projektdateien[i])
for i in projektdateien:
neuer_ordner_name=i[0:-4]
print(“neuer Ordnername:”,neuer_ordner_name)
alter_ordner_name=projektdateien[i][0]
print(“alter Ordnername:”,alter_ordner_name)
verzeichnis=projektdateien[i][1]
print(“Verzeichnis aus dem Dict:”,verzeichnis)
alter_pfad=os.path.join(verzeichnis,alter_ordner_name)
neuer_pfad=os.path.join(verzeichnis,neuer_ordner_name)
print(“alter Pfad:”,alter_pfad)
print(“neuer Pfad:”,neuer_pfad)
os.rename(alter_pfad,neuer_pfad)
print(“ORDNER WURDE ZU”,neuer_ordner_name,“UMBENANNT!!!\n\n\n”)