2015-11-22 2 views
-1

Есть ли способ извлечь только короткое имя файла из StackTrace, которое генерируется, когда исключение выбрано на C#?Получение короткого имени файла (с расширением) в C# Stacktrace?

К примеру, у меня есть этот код, который перехватывает исключение брошенного и отображает предупреждение JavaScript:

try 
{ 
    da.saveDebitCardPaymentDetails(cboDebitCardProvider.SelectedItem.Text, txtDcNum.Text, txtDcHolderName.Text, cboDdlDcard.SelectedItem.Text, 1 /*kasi test lang muna*/, 37 /*kasi test lang muna*/, 10000 /*kasi test lang muna*/); 
    ScriptManager.RegisterClientScriptBlock(this, typeof(Page), "test", "alert('Your payment has been processed.');", true); 
} 
catch (Exception ee) 
{ 
    string bugToTrace = (new StackTrace(ee, true)).GetFrame(0).GetFileName() + " at line " + (new StackTrace(ee, true)).GetFrame(0).GetFileLineNumber().ToString(); 
    ScriptManager.RegisterClientScriptBlock(this, typeof(Page), "done", "alert('Oops. Something has gone wrong. Please try again in a few moments. Cause of error: " + ee.Message.Replace("'", "") + " (" + bugToTrace + ")" + "');", true); 
} 

Когда исключение брошено и поймано, отображается полный путь (без обратных косой черты). Я хочу, чтобы он отображался только, например: AClass.cs at line 1909

EDIT: Это то, о чем я говорю. enter image description here

+0

Рассматривали ли вы расщеплению с помощью '/' и использовать последнее значение или поиск последней IndexOf из '/' и используя подстроку? – Rajesh

+0

Что значит «без обратной косой черты» _? Информация о исходном файле, если присутствует, использует обратную косую черту для разграничения частей пути; в каком сценарии вы видите части пути без разделителей? Вы пробовали 'Path.GetFileName()'? Вы пробовали _anything_? Пожалуйста, предоставьте [хороший, _minimal_, _complete_ пример кода] (http://stackoverflow.com/help/mcve), который показывает, что вы пробовали, с точным объяснением того, что делает этот код и как это отличается от того, что вы хотите , –

+0

Обратите внимание, что в контексте Windows фраза «короткое имя файла» означает нечто иное, чем то, о чем вы, похоже, просите здесь. То есть это означает имя файла в формате 8.3, а не полное «длинное» имя файла с более чем восемью символами в части перед символом '.' и/или более трех символов в части после' .'. –

ответ

Смежные вопросы