728x90
반응형
윈도우에서 파일 혹은 폴더명에 입력하면 안 되는 문자는 다음과 같습니다.
/ \ : * ? " < > |
1. TextBox KeyPress Event
텍스트박스에 입력할 때 KeyPress 이벤트에서
누른 키가 해당 특수문자일 경우 제외하도록
아래와 같이 코드를 입력합니다.
위와 같이 특수문자를 입력할 경우
윈도우 환경과 동일하게 ToolTip도 표시해 줍니다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
ToolTip tooltip = new ToolTip();
private void textBox1_KeyPress(object sender, KeyPressEventArgs e)
{
// 누른 키가 파일명에 들어가면 안되는 경우 체크
if ((e.KeyChar == '\\') || (e.KeyChar == '/') || (e.KeyChar == ':') ||
(e.KeyChar == '*') || (e.KeyChar == '?') || (e.KeyChar == '"') ||
(e.KeyChar == '<') || (e.KeyChar == '>') || (e.KeyChar == '|'))
{
e.Handled = true;
tooltip.Show("A file name can't contain any of " +
"the following characters:\r\n/\\:*?\"<>|", textBox1);
} else
{
tooltip.Hide(this);
}
}
|
cs |
2. Regex 정규식
정규식을 사용하는 경우에는 키 입력 시 특수문자를 제외하지 않고,
사용자가 정한 파일명에서 해당 특수문자를 제외한 문자열만 반환하는 경우 사용합니다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
public Form1()
{
InitializeComponent();
string fileName = "ABC?EFG*";
string resultFileName = ReplaceFileName(fileName);
// resultFileName = ABCEFG
}
public static string ReplaceFileName(string s)
{
Regex regex = new Regex(string.Format("[{0}]",
Regex.Escape(new string(Path.GetInvalidFileNameChars()))));
s = regex.Replace(s, "");
return s;
}
|
cs |
728x90
반응형
'IT > C#' 카테고리의 다른 글
[C#][Solved] Couldn't process file From '.resx' due to its being in the internet (30) | 2024.04.04 |
---|---|
[C#] Excel 사용하기. Create Excel File + Update Excel File (5) | 2024.03.27 |
[C#] Color Converter 만들기. HEX to RGB & RGB to HEX. (39) | 2024.02.16 |
[C#] Color Picker 만들기. 이미지 해당 픽셀의 컬러 값 가져오기. (21) | 2024.02.16 |
[C#] String 문자열끼리 비교하기. String 문자열 오름차순/내림차순 정렬. List<Struct> 구조체 리스트 오름차순/내림차순 정렬. (9) | 2024.01.26 |