답변:
프로젝트 파일을 마우스 오른쪽 단추로 클릭하고 속성을 선택합니다.
열리는 창에서 리소스 탭으로 이동하고 탭 페이지 중간에 파란색 링크 만있는 경우 클릭하여 새 리소스를 만듭니다.
그런 다음 탭 페이지 위의 도구 모음에서 새 텍스트 파일 추가를 선택하고 이름을 지정하면 프로젝트에 추가되고 열립니다.
이 정도면 코드에 Resources.TheNameYouGaveTheTextFileHere를 입력하면 해당 내용에 액세스 할 수 있습니다. 클래스에서 Resources 클래스를 처음 사용하는 경우 using 지시문을 추가해야합니다 (Resources를 입력 한 후 Ctrl +. 키를 눌러 VS가 해당 작업을 수행하도록 메뉴를 가져옴).
위의 설명이 명확하지 않은 경우 댓글을 남겨 주시면 완성되거나 이해가 될 때까지 수정하겠습니다. :)
Properties\Resources.Designer.cs
함께 생성되고 포함되므로을 namespace YourProjectRootNamespace.Properties
사용해야 YourProjectRootNamespace.Properties
합니다. ProjectRootNamespace
VisualStudio의 프로젝트 속성에 정의되어 있습니다.
Visual Studio 2003, Visual Studio 2005 및 이전 버전 (2008에서도 작동)에서는 프로젝트에 텍스트 파일을 포함시킨 다음 '속성'패널에서 작업을 '포함 된 리소스'로 설정할 수 있습니다. 그런 다음을 사용하여 파일에 스트림으로 액세스 할 수 있습니다 Assembly.GetManifestResourceStream(string)
.
여기에 다른 답변이 더 편리합니다. 완전성을 위해 이것을 포함합니다.
이 접근 방식은 이미지, 아이콘, 사운드 등과 같은 다른 유형의 파일을 포함하는 데 효과적입니다.
텍스트 파일을 삽입 한 후 다음과 같은 코드에서 해당 파일을 사용하십시오.
global::packageName.Properties.Resources.ThatFileName
ThatFileName
변수에서 지정하려면 어떻게해야 합니까?
여기에 저에게 효과적이었습니다. (실행 가능한 .NET 이미지 파일에 포함 된 파일의 내용을 읽어야했습니다.)
작업을 수행하기 전에 Visual Studio의 솔루션에 파일을 포함합니다. (제 경우는 VS 2017 커뮤니티입니다.)으로 전환 Solution Explorer
한 다음 Properties
폴더 를 마우스 오른쪽 버튼으로 클릭 Add Existing Item
하고 파일을 선택 하고 선택했습니다. (예를 들어, FileName.txt
.) 그리고 여전히있는 동안 Solution Explorer
, 포함 된 파일을 마우스 오른쪽 단추로 클릭 선택 Properties
하고 선택 Build Action
으로 Embedded Resource
.
그런 다음이 코드를 사용하여 바이트를 읽습니다.
string strResourceName = "FileName.txt";
Assembly asm = Assembly.GetExecutingAssembly();
using( Stream rsrcStream = asm.GetManifestResourceStream(asm.GetName().Name + ".Properties." + strResourceName))
{
using (StreamReader sRdr = new StreamReader(rsrcStream))
{
//For instance, gets it as text
string strTxt = sRdr.ReadToEnd();
}
}
이 경우 수락 된 답변 에서 제안 된대로 해당 파일을 리소스로 추가 할 필요 가 없습니다 .
내가 한 일은 다음과 같습니다.
리소스에 액세스하려면 :
ㅏ. 함수를 사용하여 현재 어셈블리를 얻었습니다.GetExecutingAssembly()
비. 추가 한 리소스는 텍스트 파일이므로 다음을 사용하여 스트림으로 읽었습니다.GetManifestResourceStream(fileName)
. 파일 이름에 액세스하는 방법은 다음을 호출하는 것입니다.GetManifestResourceNames()
씨. 이제 원하는 경우 StreamReader()
클래스를 사용하여 파일 끝까지 변수로 읽어보십시오.
Pavan의 대답에 추가 하여 현재 어셈블리를 가져옵니다 (일반 섹션).
Assembly _assembly;
GetManifestResourceStream (fileName) (리소스에서 읽기가 필요한 코드) :
try
{
_assembly = Assembly.GetExecutingAssembly();
_textStreamReader = new StreamReader(_assembly.GetManifestResourceStream("*Namespace*.*FileName*.txt"));
}
catch
{
Console.WritelLine("Error accessing resource!");
}