You can use s/([A-Z])/-L1/g
to find an upper case letter and replace it with a dash and it's lower case. However, this gives you a dash at the beginning of the line, so you need another sed expression to handle that.
This should work:
sed --expression 's/([A-Z])/-L1/g'
--expression 's/^-//'
<<< "MyDirectoryFileLine"
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…