프로젝트의 루트 디렉터리에서 텍스트 파일을 읽는 방법은 무엇입니까?
프로젝트의 루트 디렉터리에 추가한 텍스트 파일의 첫 줄을 읽고 싶습니다.즉, 솔루션 탐색기가 프로젝트의 .cs 파일과 함께 .txt 파일을 표시합니다.
그래서, 저는 시도했습니다:
TextReader tr = new StreamReader(@"myfile.txt");
string myText = tr.ReadLine();
하지만 이것은 Bin Folder를 참조하는 것이고 내 파일이 거기에 없기 때문에 작동하지 않습니다...어떻게 하면 이 일을 해낼 수 있을까요?:/
감사해요.
솔루션 탐색기에서 내 파일을 마우스 오른쪽 단추로 클릭합니다.txt를 선택하고 "특성"을 선택합니다.
여기서 다음을 설정합니다.Build Action
로.content
그리고.Copy to Output Directory
둘 중 어느 쪽이든Copy always
또는Copy if newer
다음을 사용하여 웹 사이트 프로젝트의 루트 디렉터리를 가져올 수 있습니다.
String FilePath;
FilePath = Server.MapPath("/MyWebSite");
또는 다음과 같은 기본 디렉터리를 얻을 수 있습니다.
AppDomain.CurrentDomain.BaseDirectory
프로젝트에 리소스 파일을 추가합니다(프로젝트->속성->리소스를 마우스 오른쪽 버튼으로 클릭).문자열이 표시되는 곳에서 "파일"로 전환할 수 있습니다.자원 추가를 선택한 후 파일을 선택합니다.
이제 다음을 통해 파일을 참조할 수 있습니다.Properties.Resources
수집.
private string _filePath = Path.GetDirectoryName(System.AppDomain.CurrentDomain.BaseDirectory);
위의 방법은 다음과 같은 것을 제공합니다.
"C:\Users\myuser\Documents\Visual Studio 2015\Projects\myProjectNamespace\bin\Debug"
여기서 시스템을 사용하여 뒤로 이동할 수 있습니다.IO.디렉토리.상위 가져오기:
_filePath = Directory.GetParent(_filePath).FullName;
한 번은 \bin, 두 번은 \myProjectNamespace로 이동하므로 다음과 같습니다.
_filePath = Directory.GetParent(Directory.GetParent(_filePath).FullName).FullName;
자, 이제 "C:"C:"와 같은 것을 가지고 있습니다.\Users\myuser\Documents\Visual Studio 2015\Projects\myProjectNamespace"를 사용하여 fileName에 다음과 같은 최종 경로를 첨부합니다.
_filePath += @"\myfile.txt";
TextReader tr = new StreamReader(_filePath);
도움이 되길 바랍니다.
포함할 수 있습니다(빌드 작업 설정).Resource
또한 다음과 같이 검색할 수 있습니다.
private static UnmanagedMemoryStream GetResourceStream(string resName)
{
var assembly = Assembly.GetExecutingAssembly();
var strResources = assembly.GetName().Name + ".g.resources";
var rStream = assembly.GetManifestResourceStream(strResources);
var resourceReader = new ResourceReader(rStream);
var items = resourceReader.OfType<DictionaryEntry>();
var stream = items.First(x => (x.Key as string) == resName.ToLower()).Value;
return (UnmanagedMemoryStream)stream;
}
private void Button1_Click(object sender, RoutedEventArgs e)
{
string resName = "Test.txt";
var file = GetResourceStream(resName);
using (var reader = new StreamReader(file))
{
var line = reader.ReadLine();
MessageBox.Show(line);
}
}
이 경우 절대 경로를 사용해야 합니다.하지만 만약 당신이 그것을 설정한다면.CopyToOutputDirectory = CopyAlways
당신이 하고 있는 것처럼 작동할 것입니다.
이 코드에서 액세스할 수 있습니다.root
디렉터리 프로젝트:
string _filePath = Path.GetDirectoryName(System.AppDomain.CurrentDomain.BaseDirectory);
그러면:
StreamReader r = new StreamReader(_filePath + "/cities2.json"))
언급URL : https://stackoverflow.com/questions/6416564/how-to-read-a-text-file-in-projects-root-directory
'programing' 카테고리의 다른 글
C 프로그래밍:불완전한 유형 오류에 대한 참조 취소 포인터 (0) | 2023.06.10 |
---|---|
Typescript/Vue - Prop의 기본 개체를 선언할 때 vuex 저장소에 액세스하려면 어떻게 해야 합니까? (0) | 2023.06.10 |
루비에서 &.(앰퍼샌드 도트)는 무엇을 의미합니까? (0) | 2023.06.05 |
UITextView에서 클릭 링크를 가로채는 방법은 무엇입니까? (0) | 2023.06.05 |
소수 자릿수 형식 지정(R) (0) | 2023.06.05 |