경로 및 파일 이름에서 잘못된 문자 지우기
파일 시스템 무결성을 보호하고 운영 체제 간 호환성을 보장하기 위해 경로 및 파일 이름에서 특정 문자는 잘못된 것으로 간주됩니다. 이러한 문자를 제거하는 것은 성공적인 파일 작업 및 저장 작업에 중요합니다.
이 문제를 해결하는 일반적인 방법은 System.IO 네임스페이스에서 Path.GetInvalidFileNameChars() 및 Path.GetInvalidPathChars() 메서드를 사용하는 것입니다. 그러나 원래 질문에 제공된 코드는 필요한 작업을 올바르게 수행하지 않습니다. 문제는 선행 및 후행 공백 문자만 제거하는 Trim() 메서드에 의존한다는 것입니다.
이 문제를 해결하려면 문자열에서 잘못된 문자를 모두 정리하는 더 강력하고 포괄적인 방법이 필요합니다. 효과적인 해결책은 Split() 메서드를 사용하여 잘못된 문자 집합에 따라 문자열을 분할하는 것입니다. 그런 다음 결과 배열을 다시 함께 재조립하여 문제 문자가 없는 문자열을 형성할 수 있습니다.
다음은 지정된 문자열에서 잘못된 문자를 효과적으로 제거하는 수정된 코드 버전입니다.
<code class="language-csharp">using System; using System.IO; namespace ConsoleApplication1 { class Program { static void Main(string[] args) { string illegal = "\"M\"" + "\a/ry/ h**ad:>> a\/:*?\"| li*tt|le|| la\"mb.?"; // 删除非法文件字符 string withoutFileInvalidChars = string.Concat(illegal.Split(Path.GetInvalidFileNameChars())); // 删除非法路径字符 string withoutPathInvalidChars = string.Concat(withoutFileInvalidChars.Split(Path.GetInvalidPathChars())); Console.WriteLine(withoutPathInvalidChars); Console.ReadLine(); } } }</code>
또한, 불법 문자를 단순히 삭제하는 대신 적합한 대체 문자로 바꾸도록 선택할 수도 있습니다. 이렇게 하려면 다음 코드 조각에 표시된 대로 원하는 구분 기호와 함께 string.Join() 메서드를 사용하세요.
<code class="language-csharp">string replacedInvalidChars = string.Join("_", illegal.Split(Path.GetInvalidFileNameChars()));</code>
이 방법은 모든 잘못된 문자를 밑줄로 대체하여 읽기 쉽고 일관된 문자열을 제공합니다. 특정 대체 문자는 특정 요구 사항에 맞게 사용자 정의할 수 있습니다.
위 내용은 C#의 파일 경로 및 파일 이름에서 잘못된 문자를 효과적으로 제거하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!