我到处寻找这个答案,但仍无法找到答案。
我的Documents文件夹中有一个文件。我在另一个文件夹中创建并附加具有相同内容的文件。 (让我们说下载)。如何为新文件指定与旧文件相同的名称?
我只需要帮助命名新文件与旧文件相同。我已经将它附加并发送到另一个文件夹。我使用StreamReader读取旧文件和StreamWriter来创建新文件。我不想硬编码重命名它的路径,因为我可能需要读取多个文件。
答案 0 :(得分:2)
目前还不清楚你要求的确切内容,但我会对它进行抨击。
如果您正在使用类似File.Copy()方法的内容,那么您只需使用源文件路径和目标文件的完整文件路径。如果您使用文件的完整路径传递字符串值,则可以使用Path.GetFileName()
获取文件名以下是基于我对您的问题的猜测错误的示例:
var filename = Path.GetFileName(sourcePath);
var newPath = $"{destinationFolderPath}\\{filename}";
File.Copy(sourcePath, newPath);
补充阅读:https://msdn.microsoft.com/en-us/library/system.io.file.copy(v=vs.110).aspx
https://msdn.microsoft.com/en-us/library/system.io.path.getfilename.aspx
答案 1 :(得分:1)
有一个静态函数Path.GetFilename,它返回一个包含在作为参数传递的路径中的文件名:
var filename = Path.GetFilename(@"c:\file.txt"); // filename = "file.txt"
Path还包含其他有用的功能,例如GetFilenameWithoutExtension。
答案 2 :(得分:1)
// The path you want to copy the filename of.
// C:/Users/<username>/Documents/<some file> in your case.
var srcPath = //...
// The directory you want to copy to.
// C:/Users/<username>/Downloads in your case.
var destDir = //...
// Different directory, same filename.
var destPath = Path.Combine(destDir, Path.GetFileName(srcPath));