簡體   English   中英

如何獲取zip文件的.dat文件的文本,這些文件位於asp.net core 6.0的一個zip文件的子文件夾中?

[英]How to get text of .dat files of the zip files which are available in sub folder of one zip file in asp.net core 6.0?

我的IFormFile zip 文件包含多個文件夾,其中又包含 zip 個文件,其中包含.dat 類型的文件,因此需要讀取此.dat 文件的文本數據。

我試過如下

[HttpPost]
    public async Task<IActionResult> RequestFiles()
    {
        try
        {
            IFormFile file = Request.Form.Files[0];
            Stream stream = file.OpenReadStream();
            using (ZipArchive archive = new ZipArchive(stream, ZipArchiveMode.Read))
            {
                foreach (var entry in archive.Entries)
                {
                    if (entry.Name.ToLower().Contains(".zip"))
                    {
                        MemoryStream nestedArchiveStream = new MemoryStream();

                        entry.Open().CopyTo(nestedArchiveStream);
                        
                        using (var nestedArchive = new ZipArchive(nestedArchiveStream))
                        {
                            var datFile = nestedArchive.Entries[0];

                            StreamReader reader = new StreamReader(datFile.ToString());
                            string strAllFile = reader.ReadToEnd();
                        }
                    }
                }
            }
            return Ok();
        }
        catch (Exception ex)
        {
            return BadRequest(ex.Message);
        }
    }

錯誤:找不到文件“D:\project'spath\WPNN788_4_11-15-22_084023.dat”。

只是因為代碼datFile.ToString()返回相對路徑。

在此處輸入圖像描述

但是,StreamReader 的構造函數需要完整路徑

在此處輸入圖像描述

錯誤表明:如果將相對路徑傳遞給構造函數,它將像這樣處理路徑:

var fullpath = Path.Combine(System.Environment.CurrentDirectory, relativepath);

您可以嘗試將 stream 而不是路徑傳遞給構造函數:

StreamReader reader = new StreamReader(datFile.Open());

我調試了結果:

在此處輸入圖像描述

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM