CS0119 'Controller.File(byte[], string)'은(는) 지정한 컨텍스트에서 유효하지 않은 메서드입니다

이미지1

ExcelDataReader 를 사용하기 위해 새 파일을 만들었는데, 이러한 오류가 떠서 왜 뜨는 것인지 찾아보았는데, 잘 모르겠어서 질문 남깁니다…

여기에서 File 부분에 빨간 줄이 뜨는데, File은 System.IO 네임 스페이스에서 시작되는 것이 아닌건가요?
예제 파일을 그대로 복사해서 넣은 값은데 왜 안되는지 잘 모르겠습니다…

c# controller 코드 입니다.

using ExcelDataReader;
using System.Collections.Generic;
using System.IO;

using System.Linq;
using System.Web;
using System.Web.Mvc;

namespace ExcelDataReaderTest.Controllers
{
public partial class HomeController : Controller
{
    public ActionResult Index()
    {


        CSVReader();
        return View();
    }

    public ActionResult About()
    {
        ViewBag.Message = "Your application description page.";

        return View();
    }

    public ActionResult Contact()
    {
        ViewBag.Message = "Your contact page.";

        return View();
    }

    public int CSVReader() {
        int ret = 0;

        string filePath = @"D:\00_OncoLib\OncoLib_excel_library_test\210907_복사해서 만듬\csv\COL_META_DATA(210907).csv";

        using (FileStream stream = File.Open(filePath, FileMode.Open, FileAccess.Read))
        {
       // csv 읽기용 reader
            using (var reader = ExcelReaderFactory.CreateReader(stream))
            {
                do
                {
                    while (reader.Read())
                    {
                        var a = reader.AsDataSet();
                    }
                } while (reader.NextResult());

      
                var result = reader.AsDataSet();
            }
        }

        return ret;
    
    }


}
}

미리 감사드립니다.

1개의 좋아요

using에 의해 Controller의 File이 선택된 것 같습니다. System.IO.File로 바꾸시고 확인 해보세요.

2개의 좋아요

그렇군요! 정말 감사합니다. 다음에는 이런 부분도 고려하도록 잊지 말아야겠습니다.

1개의 좋아요

;; 저도 많이 실수합니다.

참고로, C# 8부터 using 선언을 이용해 좀 더 코드 블럭을 줄일 수 있습니다.

        using (FileStream stream = File.Open(filePath, FileMode.Open, FileAccess.Read))
        {
            using (var reader = ExcelReaderFactory.CreateReader(stream))
            {
...

이것을,

        using FileStream stream = File.Open(filePath, FileMode.Open, FileAccess.Read);
        using var reader = ExcelReaderFactory.CreateReader(stream);

이렇게 블럭을 줄일 수 있어서 가독성이 좋아집니다.

3개의 좋아요

그렇군요, 좋은 정보 감사합니다 ^^ 그렇게 수정해서 사용해보겠습니다

1개의 좋아요