gpt4 book ai didi

c# - file.Move 不重命名

转载 作者:行者123 更新时间:2023-11-30 13:37:22 25 4
gpt4 key购买 nike

我正在编写一个程序,它应该读取 mp3 文件的 id3 标签,创建一个以艺术家命名的目录,然后我想将 mp3 文件移动到特定的艺术家目录中。

当我尝试移动 Mp3 文件时,它不会将其移动到我创建的 Musik 目录的子文件夹(命名为艺术家)中。我只想移动 Mp3 文件,而不是重命名它们。

这是我的代码:

   public void moveFiles(string path, string[] title, string[] artist,string [] songs)
{//loop through the title array
for(int i=0;i<title.Length;i++)
{// no artist no name
if (artist[i] == null)
{
i += 1;
}//check if sourceFile is existing
if (File.Exists(songs[i]))
{//check if destinationFile is existing
if (File.Exists((@"C:\Musik\" + artist[i] + songs[i])))
{//if delete
File.Delete((@"C:\Musik\" + artist[i] + songs[i]));
}
else
{ //move file from songs[i](sourcePath)to (destinationPath)
File.Move(songs[i],(@"C:\Musik\" + artist[i] + songs[i]));
MessageBox.Show("Das Lied " + title[i] + " wurde erfolgreich verschoben");
}
}
else
{
MessageBox.Show(songs[i]+" does not exist!");
}
}
}

它只会将我的文件移动到 C:\Musik 目录,并将我的文件重命名为 Artist-Song;欢迎任何帮助。谢谢:)

最佳答案

您在路径中遗漏了一个反斜杠。我强烈建议也对此类事物使用 Path.Combine。它使它更具可读性,并且是一种比纯字符串连接更简洁的方法。此外,Path.GetFileName() 非常有用...知道/喜欢它 ;)

File.Move(songs[i], Path.Combine(@"C:\Musik", Path.Combine(artist[i], Path.GetFileName(songs[i]));

更新

如果您的目标是 .Net 4.0 或更高版本,您可以使用 4 字符串覆盖来使它更清晰(如建议中所指出的)。如果您的目标是 3.5 或更低,请使用最佳解决方案。

File.Move(songs[i], Path.Combine(@"C:", "Musik", artist[i], Path.GetFileName(songs[i]));

关于c# - file.Move 不重命名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23543441/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com