【问题标题】:not able to get correct file path for subfolder file无法获得子文件夹文件的正确文件路径
【发布时间】:2021-04-23 07:40:58
【问题描述】:

在此我试图将所有 excel 数据从指定的文件夹路径及其内部存在的子文件夹加载到 sql server...问题是我能够读取主文件夹和子文件夹,但同时从子文件夹中获取数据文件它采用该子文件夹文件的主文件夹路径

示例:文件路径 - d:\test 子目录:d:\test\test2

在子目录内我的文件存在,但是在迭代时它正在读取子目录文件的路径:d:\test\file_name

请帮忙

            ```DirectoryInfo directory = new DirectoryInfo(@FolderPath);
            FileInfo[] files = directory.GetFiles("*.xlsx", SearchOption.AllDirectories);```
            

【问题讨论】:

  • 我已经多次阅读您的问题,但我真的无法理解您在问什么。你能澄清一下吗?
  • 当然...基本上我正在尝试将所有 excel 工作表从指定文件夹加载到 sql server...并且该文件夹也可能包含和添加子文件夹..所以当我尝试加载目标文件夹中的文件我无法读取子文件夹文件
  • 为什么无法读取子文件夹文件?

标签: c# c#-4.0


【解决方案1】:
// Directory structure:
// C:\Temp\ExcelFiles\Excel1.xlsx
// C:\Temp\ExcelFiles\SubFolder\Excel2.xlsx
var path = @"C:\Temp\ExcelFiles";
var allExcelFilesInPathAndSubFolders = Directory.GetFiles(path, "*.xlsx", SearchOption.AllDirectories);

此方法将预期的 2 个 Excel 文件名返回为字符串数组(即 C:\Temp\ExcelFiles\Excel1.xlsxC:\Temp\ExcelFiles\SubFolder\Excel2.xlsx)。

您帖子中的方法返回一个 FileInfo 数组。您可以从中获取所有相关信息;带或不带路径的名称,文件扩展名,使用Path.GetFileNameWithoutExtension 可以获得不带扩展名的名称。

// Directory structure:
// C:\Temp\ExcelFiles\Excel1.xlsx
// C:\Temp\ExcelFiles\SubFolder\Excel2.xlsx
var path = @"C:\Temp\ExcelFiles";
DirectoryInfo directory = new DirectoryInfo(path);
FileInfo[] files = directory.GetFiles("*.xlsx", SearchOption.AllDirectories);

// Excel1.xlsx
var firstFileName = files.First().Name;

// Excel1
var firstFileNameWithoutExtension = Path.GetFileNameWithoutExtension(files.First().Name);

// .xlsx
var fileFileExtension = files.First().Extension;

// C:\Temp\ExcelFiles\Excel1.xlsx
var firstFileFullName = files.First().FullName;

【讨论】:

  • 我也在目录中使用 FileInfo[] 类,它将是一个字符串,可以保存所有目录和子目录的所有文件
  • @Llama 如何与 fileInfo[] 一起使用??
  • @hatim 您还没有真正指定您面临的问题。您使用的代码将返回您传递的目录和子目录中的所有匹配文件。
  • @Llama 我想我当时根本不明白这个问题。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-12-02
  • 1970-01-01
  • 2015-01-25
  • 1970-01-01
  • 2019-01-19
  • 2023-03-31
相关资源
最近更新 更多