C# 文件操作(上傳 下載 刪除 文件列表...)(轉)

using System.IO;

1.文件上傳
----------
如下要點:
HTML部分:
<form id="form1" runat="server" method="post" enctype="multipart/form-data">
<input id="FileUpLoad" type="file" runat="server"/><br />
後臺CS部分 按鈕事件 
//string strFileFullName = System.IO.Path.GetFileName(this.FileUpLoad.PostedFile.FileName);
//this.FileUpLoad.PostedFile.SaveAs(Server.MapPath("./xmlzip/") + strFileFullName);

2.文件下載
----------
ListBox的SelectedIndexChanged事件 設定相關下載連接
    protected void lst_DownLoadFileList_SelectedIndexChanged(object sender, EventArgs e)
    {
        try
        {
            string strJS = "window.open('xmlzip/";
            strJS += this.lst_DownLoadFileList.SelectedItem.Text.Trim();
            strJS += "'); return false; ";
            this.imgbtn_DownLoadFile.Attributes.Add("onclick", strJS);
        }
        catch (Exception ex)
        {
            ex.ToString();
        }
    }
或者也可以通過 改變Label的Text值 來實現點擊後實現文件下載的超級連接
this.Label1.Text = "<a href=/"xmlzip/a.rar/">a.rar</a>"

3.文件刪除
---------
string strFilePath = Server.MapPath("../CountryFlowMgr/xmlzip/"+this.lst_DownLoadFileList.SelectedItem.Text.Trim());
if (File.Exists(strFilePath))
{
   File.Delete(strFilePath);
if (!File.Exists(strFilePath)) 

Response.Write("ok"); 

else 

Response.Write("no"); 


}

4.得到文件夾下的文件列表
-----------
#region 得到當前可用的文件列表
    /// <summary>
    /// 得到當前可用的文件列表
    /// </summary>
    /// <param name="IsAlert">是否需要彈出提示信息</param>
    private void fn_getCurrFileList(bool IsAlert)
    {
        try
        {
            //查找xmlzip文件夾下 屬於其本身UnitCoding的相關zip文件
            string strXmlZipDirectory = Server.MapPath("../xmlzip/");
            if (Directory.Exists(strXmlZipDirectory))
            {
                //DirectoryInfo di = new DirectoryInfo(Environment.CurrentDirectory);
                DirectoryInfo di = new DirectoryInfo(strXmlZipDirectory);
                
                FileInfo[] FI = di.GetFiles("*.zip");//只查.zip文件
                if (FI.Length > 0)
                {
                    lst_DownLoadFileList.Items.Clear();
                    foreach (FileInfo tmpFI in FI)
                    {
                        ListItem tmpItem = new ListItem();
                        tmpItem.Text = tmpFI.Name;
                        lst_DownLoadFileList.Items.Add(tmpItem);
                    }
                    lst_DownLoadFileList.SelectedIndex = 0;
                }
                else
                {
                    if (IsAlert)
                    {
                        Response.write("查無可以下載的文件!");
                    }
                }
            }
        }
        catch (Exception ex)
        {
            ex.ToString();
        }
    }
    #endregion
更多更詳細的以後再做補充

posted on 2007-01-18 13:17 freeliver54 閱讀(2385) 評論(5)  編輯 收藏 網摘 所屬分類:VS技術實踐

623697.html?type=1&webview=1

評論

#1樓 [樓主2007-08-29 08:48 freeliver54      

#region 得到一個不重複的文件名 
/// <summary> 
/// 得到一個不重複的文件名(年月日_時分秒_微秒_UserSeqID) 
/// </summary> 
/// <param name="strUserSeqID">當前操作用戶的UserSeqID</param> 
/// <returns>得到一個不重複的文件名字符串(年月日_時分秒_微秒_UserSeqID)</returns> 
public static string GetAFileNameString(string strUserSeqID) 

string strTemp,strYear,strMonth,strDay,strHour,strMinute,strSecond,strMillisecond; 
DateTime dt =DateTime.Now; 
strYear = dt.Year.ToString (); 
strMonth = (dt.Month > 9)? dt.Month.ToString() : "0" + dt.Month.ToString(); 
strDay = (dt.Day > 9)? dt.Day.ToString() : "0" + dt.Day.ToString(); 
strHour = (dt.Hour > 9)? dt.Hour.ToString() : "0" + dt.Hour.ToString(); 
strMinute = (dt.Minute > 9)? dt.Minute.ToString() : "0" + dt.Minute.ToString(); 
strSecond = (dt.Second > 9)? dt.Second.ToString() : "0" + dt.Second.ToString(); 
strMillisecond = dt.Millisecond.ToString(); 

strTemp = strYear + strMonth + strDay + "_" + strHour + strMinute + strSecond + "_" + strMillisecond + "_" + strUserSeqID.Trim(); 

return strTemp; 

#endregion   回覆  引用  查看    

#2樓 [樓主2007-08-29 08:50 freeliver54      

#region 文件上傳 
private void fn_upLoadFile() 

try 

#region 附件1 
if (this.FileUpload1.PostedFile != null) 

if (this.FileUpload1.PostedFile.ContentLength != 0) 

string strFileName = System.IO.Path.GetFileName(this.FileUpload1.PostedFile.FileName); 
string strFileNameTitle = strFileName.Substring(0, strFileName.IndexOf(".")) + "";
// 
string strNewFileSaveName = CommClass.GetAFileNameString(Session["UserSeqID"].ToString()); 
string strFileType = strFileName.Substring(strFileName.LastIndexOf("."), strFileName.Length - strFileName.LastIndexOf("."));//得到擴展名 

string strFileSavePath = "~/Files/" + strNewFileSaveName + strFileType; 
string strFilePathAndName = Server.MapPath(strFileSavePath); 

if (File.Exists(strFilePathAndName))//允許重複上傳 
File.Delete(strFilePathAndName); 
this.FileUpload1.PostedFile.SaveAs(strFilePathAndName); 

// 
DBClass dbFileSeq = new DBClass(); 
string strCommandFileSeq = " SELECT ISNULL(MAX(AppFileSeqID),0) + 1 AS MaxSeqID FROM f_AppFile WITH(NOLOCK) "; 
int intAppFileSeqID = dbFileSeq.RunSelectGetMaxSeqID(strCommandFileSeq); 
// 
DBClass dbFile = new DBClass(); 
string strCommandFile = " INSERT INTO f_AppFile(AppFileSeqID "; 
strCommandFile += " , AppFileTitle"; 
strCommandFile += " , AppFilePath, AppFileLastUser, AppFileLastDate ,AppFileType ,AppFileEditTime ) "; 
strCommandFile += " VALUES( "; 
strCommandFile += " " + intAppFileSeqID + " "; 
strCommandFile += " ,'" + strFileNameTitle + "' "; 
strCommandFile += " ,'" + strFileSavePath + "' "; 
strCommandFile += " , '" + Session["UserName"].ToString() + "' "; 
strCommandFile += " ,GETDATE() "; 
strCommandFile += " ,'" + this.radlist_DocFileType1.SelectedValue.Trim() + "' "; 
strCommandFile += " ,'1' "; 
strCommandFile += " ) "; 

if (dbFile.RunNotSelectSqlCommand(strCommandFile)) 

CommClass.DoAlert(this.Page, "附件" + strFileName + " 上傳 成功"); 

else 

if (File.Exists(strFilePathAndName)) 
File.Delete(strFilePathAndName); 
CommClass.DoAlert(this.Page, "附件" + strFileName + " 上傳 失敗"); 



#endregion 

catch (Exception exx) 

CommClass.DoAlert(this.Page, "附件 上傳 失敗"); 



#endregion 
  回覆  引用  查看    

#3樓  2008-01-28 18:36 more [未註冊用戶]

3.文件刪除 有錯誤 應該如下 
--------- 
string strFilePath = Server.MapPath("../CountryFlowMgr/xmlzip/"+this.lst_DownLoadFileList.SelectedItem.Text.Trim()); 
if (File.Exists(strFilePath)) 

File.Delete(strFilePath); 
if (!File.Exists(strFilePath)) 

Response.Write("ok"); 

else 

Response.Write("no"); 


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章