C# 子字符串 return 错误值

C# Substring return wrong value

var newEncodedFiles = @"C:\Users\wande\OneDrive\Documentos\Visual Studio 2019\Spira\Spira\bin\Debug\netcoreapp5.0\Translated\master\new_uspc\menu\macrodic.dcp";
var newPath = newEncodedFiles.Substring(0, dcpFile.LastIndexOf('.'));

此代码returns:

C:\Users\wande\OneDrive\Documentos\Visual Studio 2019\Spira\Spira\bin\Debug\netcoreapp5.0\Translated\master\new_uspc\menu\macro

我正在尝试删除文件扩展名以获取:

C:\Users\wande\OneDrive\Documentos\Visual Studio 2019\Spira\Spira\bin\Debug\netcoreapp5.0\Translated\master\new_uspc\menu\macrodic

它在 .net core 3.1 控制台应用程序中按预期工作。

var newEncodedFiles = @"C:\Users\wande\OneDrive\Documentos\Visual Studio 2019\Spira\Spira\bin\Debug\netcoreapp5.0\Translated\master\new_uspc\menu\macrodic.dcp";
var newPath = newEncodedFiles.Substring(0, newEncodedFiles.LastIndexOf('.'));

您需要使用 newEncodedFiles,而不是 dcpFile

var newEncodedFiles = @"C:\Users\wande\OneDrive\Documentos\Visual Studio 2019\Spira\Spira\bin\Debug\netcoreapp5.0\Translated\master\new_uspc\menu\macrodic.dcp";

var newPath = System.IO.Path.Combine(System.IO.Path.GetDirectoryName(newEncodedFiles ), System.IO.Path.GetFileNameWithoutExtension(newEncodedFiles ));