2014-10-14 6 views
2

Мне нужно удалить специальные символы из файла, я пробовал следующий код на основе этого example, он генерирует несколько ошибок. Мне нужен этот код для работы в asp.net.Удалить Специальные символы из имени файла

using System; 
using System.Linq; 
using System.Text.RegularExpressions; 

public class Test { 
    public static void Main() { 
     // your code goes here 

     var file_name = GetValidFileName("this is)file<ame.txt"); 
     Console.WriteLine(file_name); 
     private static string GetValidFileName(string fileName) { 
      // remove any invalid character from the filename. 
      return Regex.Replace(fileName.Trim(), "[^A-Za-z0-9_. ]+", ""); 
     } 
    } 
} 

Пример кода на выходе & ideone.com

+0

Каковы возникшие ошибки? – Codor

+0

Ошибка указана здесь http://ideone.com/FzpqfC – Learning

+1

http://stackoverflow.com/a/8626562/284240 –

ответ

4

Вы поставили private static string GetValidFileName в public static void Main() и в C# не допускается. Просто измените код, как показано ниже, и он будет работать:

using System; 
using System.Linq; 
using System.Text.RegularExpressions; 

public class Test { 
    public static void Main() { 
    // your code goes here 

    var file_name = GetValidFileName("this is)file<ame.txt"); 
    Console.WriteLine(GetValidFileName(file_name)); 

    } 
    private static string GetValidFileName(string fileName) { 
     // remove any invalid character from the filename. 
     String ret = Regex.Replace(fileName.Trim(), "[^A-Za-z0-9_. ]+", "") 
     return ret.Replace(" ", String.Empty); 
    } 
} 
+0

Работало, но файл имеет пустое пространство 'this isfileame.txt', как я могу удалить пустое пространство из имя файла. – Learning

+0

Отредактированный ответ. Я использовал String.Replace вместо regex для удаления пробелов только потому, что это проще и доступно для чтения – Tinwor

+0

да обновленная версия кода работает. – Learning

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