我有一个共享驱动器,大约有约10,000个文件位于大约7,000个不同的文件夹中,这些文件夹可能比父文件夹多7个文件夹。大多数这些文件(如果不是全部)都是.pdf文件,我想为每个.pdf文件创建一个具有相同名称的索引文件。索引文件将包含由管道分隔的文件夹名称。结构的从文件路径创建文本文件的有效方式
实施例:
C:\Files\1000\2000\01\99\AB\01\00\file1.pdf
C:\Files\1000\2000\01\99\CD\02\10\file2.pdf
C:\Files\1200\2010\20\99\WE\30\12\file3.pdf
C:\Files\1300\2000\31\99\BA\56\23\file4.pdf
C:\Files\1400\2014\59\99\RT\34\34\file5.pdf
的索引文件内容示例:
1000|2000|01|99|AB|01|00|<some static info>|<some static info>
1000|2000|01|99|CD|02|10|<some static info>|<some static info>
1200|2010|20|99|WE|30|12|<some static info>|<some static info>
1300|2000|31|99|BA|56|23|<some static info>|<some static info>
1400|2014|59|99|RT|34|34|<some static info>|<some static info>
最终输出:
C:\Files\1000\2000\01\99\AB\01\00\file1.pdf
C:\Files\1000\2000\01\99\AB\01\00\file1.txt
C:\Files\1000\2000\01\99\CD\02\10\file2.pdf
C:\Files\1000\2000\01\99\CD\02\10\file2.txt
C:\Files\1200\2010\20\99\WE\30\12\file3.pdf
C:\Files\1200\2010\20\99\WE\30\12\file3.txt
C:\Files\1300\2000\31\99\BA\56\23\file4.pdf
C:\Files\1300\2000\31\99\BA\56\23\file4.txt
C:\Files\1400\2014\59\99\RT\34\34\file5.pdf
C:\Files\1400\2014\59\99\RT\34\34\file5.txt
索引文件将被保存为相同的文件名.pdf并保存在与文件相同的目录中。我应该如何处理这个问题?感谢您的建议!
编辑: 谢谢,山姆和Furkle。当我开始写它时,我终于能够获得与你所做的相似的文件路径。
string[] filenames = Directory.GetFiles(loca, "*.*", SearchOption.AllDirectories);
string fname = DateTime.Now.ToString("yyyy-MM-dd") + ".txt"; //wrote it to a file just to see if I could get the path
File.CreateText(Path.Combine(Log, fname)).Dispose();
foreach(string filename in filenames)
{
using (FileStream f = new FileStream(Path.Combine(Log, fname), FileMode.Append, FileAccess.Write, FileShare.Write))
Using (StreamWriter l = new StreamWriter(f))
{
l.WriteLine(filename);
}
}
MessageBox.Show("Done");
变量loca只是我现在使用的测试路径。输出给了我到目前为止我的测试中文件所在位置的绝对路径。我将使用你的提示,看看我可以如何进一步发展它。再次感谢您的指导!
'我应该如何看待呢?'你可以通过编写一些代码开始,并询问在这里如果你得到的地方停留...... – 2014-11-14 21:02:45
你是新来者只是寻求一些帮助非常关键。我仍然在学习如何做事,只需要一种方法的指导。我不是在寻找某个人为我写出整件事,而只是在一个方向上推动我应该如何开始...... – Jayarikahs 2014-11-14 21:32:23
Jayarikahs,“我应该如何处理这个问题?”太广泛了。我们不知道你知道什么,也不知道你不知道什么。你已经研究和尝试过。所以在这种形式下,你的问题仅仅意味着*“为我写”*。顺便说一句:SO是关于编码问题的,如果你想了解更多关于某个主题的信息,可以使用google。 – 2014-11-14 21:38:48