2016-08-18 60 views
0

我正在写一个向导从数据库中提取信息,如文件。该向导不会被编译,它只是在命令上运行。我不确定这是否正确。如何获取当前打开的文件的文件夹在c#

问题是,我需要输入更多信息来操纵数据库,并且我想将这些值存储到我用来操纵数据库的csv文件中。

所以问题是:如何获取c#应用程序中当前打开的文件的文件夹,以便我可以将csv文件保存到该文件夹​​中?

编辑:路径需要是动态的。每个数据库文件存储在一个单独的文件夹中。我需要向导来保存我刚打开文件的文件夹。

edit2: 我没有以编程方式打开文件。该文件正由应用程序中的用户打开。所以,用户打开一个文件,并显示一堆数据库信息。然后,他运行一个向导,输入一些系数等数据,这将改变数据库文件中的信息。我需要能够将他输入的系数存储到包含他打开的数据库文件的文件夹中。我无法访问/更改应用程序代码,只能访问向导代码。

谢谢

+0

1.这是C#不是蟒蛇,2。我需要的应用程序提供的文件名或当前文件夹,它需要动态,而不是硬编码 – azmundai

回答

0

是这样的吗?

var file = "C:\\Users\\Me\\Desktop\\Test.txt"; 
    var fileLocation = file.Substring(0, file.LastIndexOf("\\")); 
+0

路径需要是动态的。每个数据库文件存储在一个单独的文件夹中。我需要向导来保存我刚打开文件的文件夹。 – azmundai

+0

字面上我刚刚告诉你。该文件的路径将在那里,所以只需修剪它的ffs。 – ThePerplexedOne

+0

我需要动态地查找当前打开文件的路径。每个文件都在不同的文件夹中。如果我硬编码一个文件var ..那对我没有好处。我需要将csv与特定的数据库文件一起存储,每个都放在一个单独的文件夹中。 – azmundai

0

您可以使用此:

string path = Path.GetFullPath(Directory.GetCurrentDirectory()).TrimEnd(Path.DirectorySeparatorChar); 
string directoryName = Path.GetFileName(path); 

我发现在这个线程该解决方案

Get the (last part of) current directory name in C#

+0

谢谢,但同样,我没有路径或文件或文件名。我需要应用程序告诉我它当前打开的文件的路径。通过阅读你链接的文章,我只能看到Environment.CurrentDirectory。我需要类似的东西,但..由于某种原因,我无法访问Environment.CurrentDirectory。 – azmundai

0

尝试使用DirectoryInfo,以获取有关的任何目录信息:

using System; 
using System.IO; 

namespace ConsoleApplication2 
{ 
    class Program 
    { 
     static void Main(string[] args) 
     { 
      DirectoryInfo di = new DirectoryInfo(Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location)); 
      if (di != null) 
      { 
       FileInfo[] subFiles = di.GetFiles(); 
       if (subFiles.Length > 0) 
       { 
        Console.WriteLine("Files:"); 
        foreach (FileInfo subFile in subFiles) 
        { 
         Console.WriteLine(" " + subFile.Name + " (" + subFile.Length + " bytes) " + "Directory name: " 
          + di.Name + " Directory full name: " + di.FullName); 
        } 
       } 
       Console.ReadKey(); 
      } 

     } 
    } 
} 
+0

这似乎是正确的方向..但给我C:\用户\管理\应用程序数据\本地\温度\ CSSCRIPT \缓存\ 537240694 ..看起来像向导的位置?正在执行向导来替换关于打开文件或..的信息我是否正确理解这一点? – azmundai

+0

正在执行的向导将打开的文件缓存到'%temp%'。 –