2017-08-24 50 views

回答

1
 FileStream fileStream = null; 
     StreamWriter writer = null; 
     try 
     { 

      string folderPath = @"D:\SpecificDirecory\"; 
      string path = Path.Combine(folderPath , "fileName.txt"); 

      if (!Directory.Exists(folderPath)) 
      { 
       Directory.CreateDirectory(folderPath); 
      } 

      fileStream = new FileStream(@path, FileMode.Create); 
      writer = new StreamWriter(fileStream); 
      writer.Write(fileBuilder.ToString());    
     } 
     catch (Exception ex) 
     { 
      throw ex; 
     } 
     finally 
     { 
      writer.Close(); 
      fileStream.Close(); 
     } 
3

可以包括太多的路徑:

string path = "C:\\SomeFolder\\"; 
File.Create(path + name + ".txt"); 

或使用Path.Combine像:

string path = @"c:\folder\....";

File.Create(Path.Combine(path, name + ".txt")); 
+0

我已經試過這個,但得到錯誤「路徑格式不正確」 –

+0

請問你能證明你到底嘗試了什麼嗎? –

+0

string ww =(@「U:\ scripts \」); StreamWriter w = new StreamWriter(File.Create(ww + name +「.txt」)); w.WriteLine(name); w.Close(); –

1

您可以爲您的目錄這樣的聲明path然後用下面的comm和:

File.Create(path + name + ".txt");

你會得到你想要的

4

使用Path.Combine

Path.Combine使用Path.PathSeparator它檢查在結束第一路徑是否已經分離,所以它不會複製分隔符。此外,它會檢查要合併的路徑元素是否具有無效字符。

從這個SO post

報價也將是富有成果的檢查,如果你name變量包含一個文件名無效字符。

var invalidChars = Path.GetInvalidFileNameChars(); 
string invalidCharsRemoved = new string(name 
    .Where(x => !invalidChars.Contains(x)) 
    .ToArray()); 

從這個SO post

string directory = "c:\\temp"; 

引用而不是

File.Create(name + ".txt") 

使用

您可以先使用Path.GetInvalidFileNameChars方法從name變量去除無效字符

string filename = invalidCharsRemoved + ".txt" 
File.Create(Path.Combine(directory , filename)) 
+0

我在invalidChars上有錯誤 –

+0

什麼是錯誤信息? – Winnie

+0

現在檢查,我編輯了我的回覆。 – Winnie

2

name包含像一些事情@"U:\TDScripts\acchf122_0023"

確定根據從你的評論確實需要擺脫舊的路徑和目錄的新信息。

您可以使用Path.GetFileNameWithoutExtension方法來實現。之後,您可以使用Path.Combine來創建自己的路徑。

這裏是爲了證明這樣一個例子:

string myDirectory = @"C:\temp"; 

string oldPathWithName = @"U:\TDScripts\acchf122_0023"; 

string onlyFileName = Path.GetFileNameWithoutExtension(oldPathWithName); 

string myNewPath = Path.Combine(myDirectory, onlyFileName + ".txt"); 

Console.WriteLine(myNewPath); 

我希望這能解決你的問題。

相關問題