如何获取xls文件的目录C#

How to get directory of an xls file C#

我需要编写一个程序来读取 excel 的列。但是为此,我需要获取此 excel 的路径(目录)。阻止我这样做的原因是我不想固定本地目录,因为如果有人在另一台机器上下载文件,他们将需要更改路径。

您有两个选择:

  1. 如果您不想将 excel 文件存储在您的应用程序目录中,您可以简单地将文件放在 C: 分区的根目录中。 每个 windows 设备都会有 C: 分区。 正如用户 Lee Taylor 所指出的,事实证明你可以拥有一个没有 C: 分区的 windows 设备: 分区,虽然不常见
  2. 如果您不介意将您的excel文件存储在您的应用程序目录中,您可以通过Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location);
  3. 获取您应用程序目录的相对路径

还有其他方法,但我认为这些是最简单易行的方法。

你问了如何获取一个xls文件的目录C#.

正如其他人指出的那样,该文件需要位于已知位置,一种方法是将 Excel 文件添加到您的解决方案并将其标记为 Content,指定它应该被复制到输出目录。下图显示了如何设置这些属性。

似乎正在寻找一种可靠的方法来实现这一点,当您 deploy 其他用户的应用程序时。为此,您将需要一种策略来制作 .msi 或 .msix,将此文件放置在需要的位置。 但是要按照你问的方式回答你的基本问题这种情况下的路径可以通过这种方式获得。此代码将获取路径并打开 Excel 文件。

// Get the path and open the Excel file
static void Main(string[] args)
{
    var path =  
        Path.Combine(
            Path.GetDirectoryName(Assembly.GetEntryAssembly().Location), 
            "Microsoft Excel Worksheet.xlsx");

    Console.WriteLine(path);
    System.Diagnostics.Process.Start("explorer.exe", path);
}

我应该提到执行目录中的文件可以读取但不能写入(没有提升的权限)。如果文件用户数据则参考使用环境变量的答案:

var appdata = Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData)