2016-08-18 62 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%'。 –