2

エクセルファイルをアップロードしてデータを抽出できるウェブサイトを作成しています。私のコードでは、ExcelファイルをUploadeフォルダー内のサーバー上のアプリケーションにアップロードし、そこからデータを抽出します。

DateTime.Nowファイル名の名前を日付と時刻の文字列に変更しているので、サーバーをExcelファイルで埋めたくないので、取得した文字列と一致しないファイルを削除します。

したがって、サーバーのUploadeフォルダーにある既存のファイルを確認し、古いExcelファイルがある場合はそれらを削除します。

サーバーからフォルダのコンテンツを取得するにはどうすればよいですか?

私のコード:

protected void uploadButton_Click(object sender, EventArgs e)
{
    if (fileUpload.HasFile)
    {
        string fileuploaded = Server.MapPath("Upload") + "\\" + DateTime.Now.ToString("yyyyMMddHHmmss") + "excel" + Path.GetExtension(fileUpload.FileName);
        fileUpload.SaveAs(fileuploaded);
    }

}
4

2 に答える 2

2

これには、 Directory.GetFilesメソッドを使用できます。

string folder = Server.MapPath("Upload");
foreach (var filePath in Directory.GetFiles(folder, "*excel*"), SearchOption.TopDirectoryOnly)
{
    FileInfo fi = new FileInfo(filePath);
    if ((DateTime.Now - fi.CreationTime).TotalDays > 30)
    {
        File.Delete(filePath);
    }
}

DateTime.ParseExact()を使用して、ファイル名から作成日を解析することもできます。

于 2012-11-22T12:09:40.533 に答える
2
string folder = Server.MapPath("Upload");
foreach (var item in Directory.GetFiles(folder))
{
    FileInfo fi = new FileInfo(item);
    DateTime creationDate = fi.CreationTime;
    //TODO: check creation date and delete files you want...

}
于 2012-11-22T12:02:27.970 に答える