2012-11-12 134 views
1

我想寫出一個文本文件:C:\Test folder\output\,但沒有把C:\寫文本文件到子文件夾

這是我的時刻,這目前工作,但在開始時有C:\

StreamWriter sw = new StreamWriter(@"C:\Test folder\output\test.txt"); 

我真正想寫的文件到輸出文件夾,但與具有在前面C:\出來。

我曾嘗試以下,但我的程序只是掛起(不寫文件了):

(@"\\Test folder\output\test.txt"); 

(@".\Test folder\output\test.txt"); 

("//Test folder//output//test.txt"); 

("./Test folder//output//test.txt"); 

反正我能做到這一點?

謝謝。

+0

你想讓這個子文件夾是在根當前驅動器或者您正在尋找其他的東西(即創建的應用程序目錄下的子文件夾) – e4rthdog

+1

你爲什麼要刪除C:\ – Rob

+0

@ e4rthdog:我已經在子文件夾中創建的,我只是想現在寫出到這個文件夾的文本文件。 – Kevdog777

回答

2

感謝您的幫助球員。

我的一位同事插話,並幫助爲好,但@Kami幫了大忙了。

它現在的工作時,我有:

string path = string.Concat(Environment.CurrentDirectory, @"\Output\test.txt"); 

正如他所說的:「在CurrentDirectory是程序從運行

2

我明白,你想將數據寫入到一個指定的文件夾。第一種方法是在代碼或配置中指定文件夾。

如果你需要編寫特定的驅動器或電流驅動,你可以做以下

string driveLetter = Path.GetPathRoot(Environment.CurrentDirectory); 
string path = diveLetter + @"Test folder\output\test.txt"; 
StreamWriter sw = new StreamWriter(path); 

如果該目錄必須是相對於當前的應用程序目錄,然後用戶AppDomain.CurrentDomain.BaseDirectory來獲得當前目錄和使用../組合導航到所需的文件夾。

+0

太棒了,那必須要做。它現在可以工作 - 但這也是類似的說法:「使用C:\」 - 現在我必須使用C:\。謝謝 – Kevdog777

2

的一種常用技術是使相對目錄到你的EXE的運行時目錄,例如,一個子目錄,這樣的:

string exeRuntimeDirectory = 
    System.IO.Path.GetDirectoryName(
     System.Reflection.Assembly.GetExecutingAssembly().Location); 

string subDirectory = 
    System.IO.Path.Combine(exeRuntimeDirectory, "Output"); 
if (!System.IO.Directory.Exists(subDirectory)) 
{ 
    // Output directory does not exist, so create it. 
    System.IO.Directory.CreateDirectory(subDirectory); 
} 

這意味着無論exe文件被安裝,它會創建一個「輸出「子目錄,然後將其寫入文件。

它也有保持EXE的優勢,它的輸出文件一起在一個位置,而不是散落得到處都是。

2

您可以使用System.IO.Path.GetDirectoryName讓你運行應用程序的目錄,然後您可以添加到這個路徑的其餘部分..

我沒有得到清楚你這個問題想要什麼,希望這得到它..

相關問題