2012-05-29 70 views
1

我目前正在需要打印出到一個文本文件的應用程序,我有麻煩使它低於便攜是我到目前爲止便攜式流編寫C#

FileStream fs = new FileStream((@"|DataDirectory|\print" + fileName + ".txt"), FileMode.Create, FileAccess.Write); 
      using (StreamWriter writer = new StreamWriter(fs)) 
      { 
        write.write("HelloWorld" 
      } 

錯誤亮起第一行說我使用無效字符,我假設這是因爲| DataDirectory |但除此之外,我不知道如何能夠在用戶的機器上使用它?

在此先感謝

+4

'| DataDirectory目錄|'僅在Web應用程序IIRC中可用。 – leppie

+1

'|'是根據http://msdn.microsoft.com/en-us/library/windows/desktop/aa365247(v=vs.85).aspx –

+0

的文件/文件夾名稱的保留字符Thankyou,I' d在與數據庫一起工作之前曾使用它,所以只是假定它會再次運行 – Alex

回答

1

如果你正在開發一個桌面應用程序,嘗試這樣的:

string dir = Path.GetDirectory(Assembly.GetExecutingAssembly().Location); 
string filename = Path.Combine(dir, "print", filename + ".txt"); 
FileStream fs = new FileStream(filename,....); 
+1

實際上,您需要'Application.StartupPath'。 – leppie

+0

試過琵琶的第一個,因爲它更小,並且完美地工作 雖然 – Alex

2

修改您的第一線以下:

var fs=new FileStream(
     string.Format(@"{0}\print\{1}.txt", 
     Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData), 
     filename),FileMode.Create,FileAccess.Write); 
+0

無論如何,這將它保存到appdata \ Roaming? – Alex

+0

是的:),它也是「跨窗口操作系統」。 我不知道你是如何在沒有它的情況下在appdata中創建你的「打印」文件夾的。 –