私はファイルを再帰的にスキャンして収集することによって、FileInfoの詳細をxmlファイルに追加しようとしています。しかし、私は少し問題があり、私はこの問題を解決する方法がはっきりしていません。ここでStack.Pushのオーバーロード?
は私のコードです:私はdirInfo.Name.ToStringを(取るしようとしている。ここで、iはエラーに遭遇し[OK]をがある
public static class ScanAndSerialize
{
public static void Serialize()
{
List<string> dirs = FileHelper.GetFilesRecursive(@"s:\project\");
XmlSerializer SerializeObj = new XmlSerializer(dirs.GetType());
string sDay = DateTime.Now.ToString("MMdd");
string fileName = string.Format(@"s:\project\{0}_file.xml", sDay);
TextWriter WriteFileStream = new StreamWriter(fileName);
SerializeObj.Serialize(WriteFileStream, dirs);
WriteFileStream.Close();
}
}
static class FileHelper
{
public static List<string> GetFilesRecursive(string b)
{
List<string> result = new List<string>();
Stack<string> stack = new Stack<string>();
stack.Push(b);
while (stack.Count > 0)
{
string dir = stack.Pop();
try
{
result.AddRange(Directory.GetFiles(dir, "*.*"));
foreach (string dn in Directory.GetDirectories(dir))
{
DirectoryInfo dirInfo = new DirectoryInfo(@"s:\project\");
dirInfo.Name.ToString();
dirInfo.Attributes.ToString();
dirInfo.CreationTime.ToString();
dirInfo.Exists.ToString();
dirInfo.LastAccessTime.ToString();
dirInfo.LastWriteTime.ToString();
stack.Push(dn);
}
}
catch
{
}
}
return result;
}
}
}
)とコードの他の行と何らかの形でXMLファイルをこれらの詳細でレンダリングすることにそれらを組み込んでいます。エラーは私が試したようにプッシュが過負荷にならないということです:
stack.Push(dn, dirInfo.Name.ToString(), dirInfo.Attributes.ToString().....)
誰もが考えていますか?私はこれを後ろ向きにしていますか?
私はこのメソッドを試してみましたが、エラーが出ます - > 'dirInfo'という名前のローカル変数は、このスコープで宣言できません。b/c 'dirInfo'に意味を与えます。 'スコープは他に何かを示す。 – yeahumok
@yeahumok:つまり、同じ名前の変数を2回宣言したということです。私はあなたがC#の初心者だと思っていますか? –
非常に新しいと私はそれが非常にイライラしていることを発見している! – yeahumok