我使用StreamWriter
創建多個文件創建一個文件,我想在一個特定的目錄保持文件名前路徑更改爲自定義路徑,並使用流作家在C#
StreamWriter w = new StreamWriter(File.Create(name + ".txt"));
w.WriteLine(name);
w.Close();
這裏name
是要創建這些文件變量被用作文件名,也被寫入該文件,但我的問題是我想要在特定目錄中創建該文件。
我使用StreamWriter
創建多個文件創建一個文件,我想在一個特定的目錄保持文件名前路徑更改爲自定義路徑,並使用流作家在C#
StreamWriter w = new StreamWriter(File.Create(name + ".txt"));
w.WriteLine(name);
w.Close();
這裏name
是要創建這些文件變量被用作文件名,也被寫入該文件,但我的問題是我想要在特定目錄中創建該文件。
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();
}
可以包括太多的路徑:
string path = "C:\\SomeFolder\\";
File.Create(path + name + ".txt");
或使用Path.Combine
像:
string path = @"c:\folder\....";
:
File.Create(Path.Combine(path, name + ".txt"));
您可以爲您的目錄這樣的聲明path
然後用下面的comm和:
File.Create(path + name + ".txt");
你會得到你想要的
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))
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);
我希望這能解決你的問題。
我已經試過這個,但得到錯誤「路徑格式不正確」 –
請問你能證明你到底嘗試了什麼嗎? –
string ww =(@「U:\ scripts \」); StreamWriter w = new StreamWriter(File.Create(ww + name +「.txt」)); w.WriteLine(name); w.Close(); –