1
異なる値を持つ複数の配列を返すにはどうすればよいですか?私の最初の機能では、私のフォルダにあるすべてのファイルを取得します。異なる値を持つ複数の配列を返す
私の2番目の機能では、各ファイルに対して "modDesc.xml"を抽出し、自分の情報を取得します。今私はすべてのこれらの情報を持つ配列の各ファイルを返すしたい!しかし、私は知らないどのように..私は誰かが私を助けることを願っています!
public string[] openDirectory(string DirectoryPath)
{
string[] files = Directory.GetFiles(DirectoryPath, "*.zip");
return files;
}
public string[] getModDesc(string DirectoryPath)
{
string[] files = openDirectory(DirectoryPath);
foreach (var file in files)
{
using (ZipFile zip = ZipFile.Read(file))
{
ZipEntry modDescHandler = zip["modDesc.xml"];
if (modDescHandler != null)
{
if (File.Exists("tmp\\modDesc.xml"))
{
File.Delete("tmp\\modDesc.xml");
}
modDescHandler.Extract("tmp");
XDocument modDesc = XDocument.Load("tmp\\modDesc.xml");
string modTitle = null;
string modAuthor = null;
string modVersion = null;
string modFileName = null;
try
{
modTitle = modDesc.Element("modDesc").Element("title").Element("de").Value;
modAuthor = modDesc.Element("modDesc").Element("author").Value;
modVersion = modDesc.Element("modDesc").Element("version").Value;
}
catch
{
}
modFileName = Path.GetFileName(file);
string[] modInformation = { modTitle, modAuthor, modVersion, modFileName };
File.Delete("tmp\\modDesc.xml");
return modInformation;
}
}
}
return new string[0];
}
ありがとう!私はそれが動作すると思う..:Pどのようにリストから値を得ることができますか? – Cryrexon
ループを使って反復するか、 'yourList.ElementAt(index)'を使って特定のインデックスを取得することができます。さらに、配列の配列を返すだけなら、メソッドの戻り値の型を 'string [] []'に変更し、 'return fileInformation'を' return fileInformation.ToArray() 'に変更することができます。他の配列と同じように、インデックスで値を参照します。 –
私は自分のforeachループ 'foreach(fileInformaton内のファイル)'を持っていて、今は配列から別のリストに情報を得たいと思います 'var list = new Mod {isModEnabled = true、modTitle = file [] []};'どうすれば入手できますか?申し訳ありません私は初心者です:] – Cryrexon