2011-08-22 33 views
0

请原谅我缺乏C#知识!从最终生产计划中访问资源/参考文件?

如果我不知道我的应用程序在硬盘上安装/存在的位置,如何在运行时访问所需的文件?另外 - 如何将该文件与我的应用程序分发(即,将其保存在C:\ Program Files \ MyApp \ resouces \ file.ext中)?

背景:

我使用C#.NET的3.5电子表格齿轮。我的程序根据数据库的内容写出一系列的excel文件。其中一个要求是页面设置中的标题要么需要具有多种颜色/格式的图像或文本。我已经深入研究了这两种方法,并没有发现以编程方式执行此操作的解决方案。我的回归是打开一个预先构建好的excel文件,这个文件在头文件中已经有了logo(你可以在excel中做到这一点),将数据放入excel文件中,并将其保存在用户指定位置的新名称下。

我应该寻找资源还是打开预先设置好的模板excel文件?

感谢您的帮助!

回答

0

如果您的应用程序的用户拥有正确的权限,我会使用Registry对象来查询注册表。我可能误解了你的问题 - 我认为你正在寻求一种方法来找到应用程序的路径?

+0

那么,我正在寻找一种方法来找到一个文件(可靠),我的程序需要给定的程序和文件已分发给许多用户。 –

+0

所以我误解了:-)道歉。您可以这样做:在您的项目中:(1)在解决方案窗格中添加要包含在.Net项目中的文件(2),右键单击添加的文件 - 选择属性(3)设置“适当地复制到输出目录”选项。这将确保您的文件始终与您的可执行文件在同一个文件夹中。 – Arun

+0

现在我有位于'bin \ Debug \ resources \ file.xls'的文件 - 我通过'string file = @“resources \ file.xls”'来访问文件。当我将它添加到我的解决方案中时,是否需要在解决方案所在的同一级别创建一个名为resources的新目录? –

0

重要的是使相关的文件的名称,即代替:

C:\Program Files\MyApp\resouces\file.ext 

有:

resouces\file.ext 

,然后有一个试图打开相关文件的一个小功能到您可以在运行时获得的可执行路径。不要根据当前文件夹打开它,因为它可能与可执行文件路径不同。

+0

当我将程序分发给其他用户时,如何确保resources \ file.ext获取到位?另外 - 从Visual Studio中运行时,我的文件系统上的\ resources \在哪里?在Debug文件夹下? –

+0

您可以使用安装程序,如Wix(http://wix.sourceforge.net/),您可以在其中指定安装过程中放置​​文件的位置。至于运行在调试器中,我提到的那个小函数可以用来查看其他地方,比如说,如果DEBUG被定义了,那么使用一个像“.. \ .. \”这样的前缀。 – Skizz

+0

Visual Studio没有内置安装程序吗? –