반응형
폴더에 포함된 모든 리소스 나열
제 솔루션에는 A에 몇 개의 파일이 있는 폴더가 있었습니다.이 모든 파일에는 빌드 액션 "Embedded Resource"가 있습니다.
이 코드로 파일을 얻을 수 있습니다.
assembly.GetManifestResourceStream(assembly.GetName().Name + ".Folder.File.txt");
하지만 모든 것을 얻을 수 있는 방법은 없을까?*.txt
이 폴더에 파일을 저장하시겠습니까?이름 목록이나 그 모든 걸 반복하는 방법?
체크 아웃 할 수 있습니다.
assembly.GetManifestResourceNames()
포함된 모든 리소스의 문자열 배열을 반환합니다.그런 다음 이 목록을 필터링하여 모든 데이터를 찾을 수 있습니다.*.txt
파일이 내장 리소스로 저장됩니다.
상세한 것에 대하여는, MSDN 문서를 참조해 주세요.
Folder 디렉토리 내의 모든 .txt 파일이 포함된 배열을 반환합니다.
private string[] GetAllTxt()
{
var executingAssembly = Assembly.GetExecutingAssembly();
string folderName = string.Format("{0}.Resources.Folder", executingAssembly.GetName().Name);
return executingAssembly
.GetManifestResourceNames()
.Where(r => r.StartsWith(folderName) && r.EndsWith(".txt"))
//.Select(r => r.Substring(folderName.Length + 1))
.ToArray();
}
메모: 주석 해제//.Select(...
행을 지정하여 파일 이름을 가져옵니다.
이거 한번 먹어봐.여기서 모든 파일을 얻을 수 있습니다.
string[] embeddedResources = Assembly.GetAssembly(typeof(T)).GetManifestResourceNames();
T는 당연히 당신의 타입입니다.범용적으로 사용할 수 있습니다.
방금 해결했습니다. 사용:
Assembly _assembly;
_assembly = Assembly.GetExecutingAssembly();
List<string> filenames = new List<string>();
filenames = _assembly.GetManifestResourceNames().ToList<string>();
List<string> txtFiles = new List<string>();
for (int i = 0; i < filenames.Count(); i++)
{
string[] items = filenames.ToArray();
if (items[i].ToString().EndsWith(".txt"))
{
txtFiles.Add(items[i].ToString());
}
}
언급URL : https://stackoverflow.com/questions/8208289/list-all-embedded-resources-in-a-folder
반응형
'sourcetip' 카테고리의 다른 글
Excel VBA 코드: x64 버전에서의 컴파일 오류(PtrSafe 속성 필요) (0) | 2023.04.18 |
---|---|
Bash 스크립트에서 인수를 반복하는 방법 (0) | 2023.04.18 |
Refresh WPF 명령어 (0) | 2023.04.18 |
[ Refresh ]또는 [Refresh All]버튼을 누른 후 매크로를 호출하는 방법 (0) | 2023.04.18 |
파일 읽기 및 쓰기 가장 쉬운 방법 (0) | 2023.04.18 |