【发布时间】:2013-11-27 19:27:00
【问题描述】:
我有一个文本文件这样说:
#TITLE:What's Up
#ARTIST:4 Non Blondes - Whats Up
#MP3:Four Non Blondes - Whats Up.mp3
#COVER:4 Non Blondes - Whats Up [CO].jpg
#BACKGROUND:4 Non Blondes - Whats Up [CO].jpg
#BPM:135
#GAP:32100
它被保存为 4 Non Blondes - Whats Up.txt 在同一个文件夹中有一个 MP3 文件,在这个例子中是:4 Non Blondes - Whats Up.mp3
我想要的是替换行:
#MP3:Four Non Blondes - Whats Up.mp3
进入这一行:
#MP3:4 Non Blondes - Whats Up.mp3
每个 MP3 行前面都有 this:
#MP3:[Songname].mp3
我知道我可以手动执行此操作,但我有 2k 个这样的文件,它们都需要链接到正确的 mp3 文件。我正在 C# 中尝试这个,但没有运气。
这是我迄今为止尝试过的:
private static void testMethod(string path)
{
var x = System.IO.Directory.GetDirectories(path);
foreach (var directory in x)
{
string[] mp3Files = System.IO.Directory.GetFiles(directory, "*.mp3");
string[] txtFiles = System.IO.Directory.GetFiles(directory, "*.txt");
string MP3FileNameWithExtensions = System.IO.Path.GetFileName(mp3Files[0]);
Console.WriteLine(txtFiles[0]);
var lines = System.IO.File.ReadAllLines(txtFiles[0]);
for (int i = 0; i < lines.Length; i++)
{
if(lines[i].Contains("#MP3")){
Console.WriteLine("Jeeeej working");
lines[i] = "#MP3:"+MP3FileNameWithExtensions;
System.IO.File.WriteAllLines(txtFiles[0], lines);
}
}
}
}
【问题讨论】:
-
您仍然可以使用 Notepad++ 手动执行此操作,它会搜索和替换文件夹中的多个文件
-
问题是,我有 1 个根文件夹,它被分隔在每首歌曲的文件夹中,包含 mp3 文件和 txt 文件。程序的其余部分已经用 c# 编写了,所以是的......
-
那么,您想从
#ARTIST行中获取值并将其放入#MP3行并附加.mp3吗?你能告诉我们你到目前为止尝试过的代码吗? (请编辑您的问题以包含代码。) -
@Baklap4 - Notepad++ 也可以在子文件夹中进行自动搜索和替换。
-
@JonSkeet 我不知道行号太糟糕了 :( 因为这只是一个示例文件
标签: c# file text .net file.readalllines