ここで非常に近い例を見てきました:
しかし、私は LINQ を初めて使用し、動作させることができませんでした (DirectoryInfo または FileInfo クラスを理解していない)。
必要なコード スニペットは次のとおりです。
(配列を割り当てる場合):
string[] files = Directory.GetFiles(Server.MapPath("~/User_Saves/" + WebSecurity.CurrentUserName), "*.xml");
for(int i = 0; i < files.Length; i++)
{
files[i] = files[i].Substring(files[i].LastIndexOf("\\") + 1);
files[i] = files[i].Substring(0, files[i].Length - 4);
}
(最後の部分、つまり「for ループ」は、単純にファイルへのパスと、予期される唯一のファイル拡張子 (".xml") を文字列から取り除き、クリーンなファイル名だけを残します)。
(配列を書き込む場合):
[このスニペットは、この質問への回答に必要ないかもしれませんが、念のため]
@foreach(string file in files)
{
<p>
<button title="Permanently delete the requisition named, "@file"" type="button" id="@file" class="fileDelBtn">DEL</button> <span style="color: #000;">~</span> <span id="@file" class="listFile">@file</span>
</p>
hasSavedFiles = true;
}
私が試したこと:
string [] files = new DirectoryInfo(Server.MapPath("~/User_Saves/" + WebSecurity.CurrentUserName)).GetFiles().OrderBy(files => files.LastWriteTime).ToArray;
このエラーのために失敗します: CS0136: 'files' という名前のローカル変数をこのスコープで宣言することはできません。
一つには、ここを見た後でも、ラムダ演算子を理解できません : http://msdn.microsoft.com/en-us/library/bb311046.aspx大いに感謝しますが、決して主な質問ではありません)。
次に、この例を使用すると、DirectoryInfo() には 2 つの引数を取るオーバーロードがないことがわかっているため、「*.xml」ファイルのみを「取得」する機能を失う可能性があります。必要。
いつものように、どんな助けも大歓迎です。さらに役立つ情報があれば、遠慮なくお尋ねください。