development

프로젝트에있는 폴더에서 파일 읽기

big-blog 2020. 12. 3. 08:07
반응형

프로젝트에있는 폴더에서 파일 읽기


C # 프로젝트 (Windows 콘솔 응용 프로그램)가 있습니다. 프로젝트 내부에 Data 라는 폴더를 만들었습니다 . Data 폴더에는 두 개의 텍스트 파일이 있습니다.

"Data"폴더에서 텍스트 파일을 어떻게 읽을 수 있습니까? 나는 아래에서 시도했다.

string[] files = File.ReadAllLines(@"Data\Names.txt")

파일을 찾을 수 없다는 것은 오류입니다.

이전에 게시 된 일부 Stackoverflow 답변을 확인했지만 그 어느 것도 나를 위해 일하지 않습니다.

어떻게 진행할 수 있습니까? 감사!


아래 코드가 작동합니다.

string path = Path.Combine(Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location), @"Data\Names.txt");
string[] files = File.ReadAllLines(path);

데이터 폴더가 어디에 있는지에 따라 다릅니다.

.exe 파일이있는 디렉토리를 가져 오려면 다음을 수행하십시오.

AppDomain.CurrentDomain.BaseDirectory

현재 디렉토리를 가져 오려면 :

Environment.CurrentDirectory

그런 다음 디렉토리 경로 ( @"\Data\Names.txt")를 연결할 수 있습니다.


'Data'라는 폴더의 모든 파일을 가져와야하는 경우 다음과 같이 코딩하십시오.

string[] Documents = System.IO.Directory.GetFiles("../../Data/");

이제 '문서'는 'Data'폴더 'Data'에있는 두 텍스트 파일의 전체 개체 이름 배열로 구성됩니다.


C # 프로젝트 (Windows 콘솔 응용 프로그램)가 있습니다. 프로젝트 안에 이미지라는 폴더를 만들었습니다. MyIcon.ico라는 ico 파일이 하나 있습니다. 아래와 같이 Images 폴더 내 MyIcon.ico에 액세스했습니다.

this.Icon = new Icon(@"../../Images/MyIcon.ico");

항상 출력 디렉토리에 복사가 설정된 후 다음을 시도하십시오.

 Directory.SetCurrentDirectory(AppDomain.CurrentDomain.BaseDirectory);
 String Root = Directory.GetCurrentDirectory();

이 코드를 사용하여 폴더 및 하위 폴더의 모든 파일을 읽을 수도 있습니다.

class Program
{
    static void Main(string[] args)
    {

        getfiles get = new getfiles();
        List<string> files =  get.GetAllFiles(@"D:\Document");

        foreach(string f in files)
        {
            Console.WriteLine(f);
        }


        Console.Read();
    }


}

class getfiles
{
    public List<string> GetAllFiles(string sDirt)
    {
        List<string> files = new List<string>();

        try
        {
            foreach (string file in Directory.GetFiles(sDirt))
            {
                files.Add(file);
            }
            foreach (string fl in Directory.GetDirectories(sDirt))
            {
                files.AddRange(GetAllFiles(fl));
            }
        }
        catch (Exception ex)
        {

            Console.WriteLine(ex.Message);
        }



        return files;
    }
}

Xamarin.iOS의 경우 파일이있는 경우 다음 코드를 사용하여 파일의 내용을 가져올 수 있습니다.

var documents = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments);
var filename = Path.Combine(documents, "xyz.json");
if (File.Exists(filename))
{
var text =System.IO.File.ReadAllText(filename);
}

string myFile= File.ReadAllLines(Application.StartupPath.ToString() + @"..\..\..\Data\myTxtFile.txt")

참고 URL : https://stackoverflow.com/questions/13762338/read-files-from-a-folder-present-in-project

반응형