# برنامه نویسی با محصولات مایکروسافت > برنامه نویسی مبتنی بر Microsoft .Net Framework > WCF , Web Services , .Net Remoting >  انتقال فايل با استفاده از سي شارپ

## seydali

سلام.من می خوام یه فایل را از کامپیوتر خودم به یک کامپیوتر دیگر در شبکه با استفاده از C#‎ انتقال بدم . چگونه این کار را انجام بدم؟
(پسوند فایل را چطور به دست  آورم؟
ایا تابع api برای انتقال فایل تو شبکه هست ؟

----------


## Xcalivorse

در صورتی که میخواهی با  File.Copy این کارو انجام بدی باید در ابتدای آدرس فایل موجود در کامپیوتر دیگر، باید IPAddress اون قید بشه  و اگر می خواهی با کلاسهای Socket این کارو بکنی باید برنامه نویسی سوکت و کنسول رو کار کرده باشی و با استفاده از کلاسهای TcpClient یا UDPClient و ... این کارو بکنی.
اگر می خواهی از API استفاده کنی WinSock رو پیشنهاد می کنم.

----------


## seydali

من باید در تابع copy آدرس کامپیوتر مورد نظر را قرار بدم؟

----------


## Xcalivorse

باید IPAddress رو قرار بدی .

----------


## hdv212

باید از مسیر UNC استفاده کنی، مثل :
\\ComputerName\e\test.txt
\\IP\e\test.txt

----------


## mohammadsafari

دوستان خسته نباشید
اگه کسی یه نمونه از *ftp* (انتقال فایل تو شبکه)با سی شارپ داره بذاره تا استفاده کنیم 
ممنون  :افسرده:

----------


## subsub

> سلام.من می خوام یه فایل را از کامپیوتر خودم به یک کامپیوتر دیگر در شبکه با استفاده از C#‎ انتقال بدم . چگونه این کار را انجام بدم؟
> (پسوند فایل را چطور به دست  آورم؟
> ایا تابع api برای انتقال فایل تو شبکه هست ؟


سلام

من منظور شما رو درست متوجه نمی‌شم. شما میخواید یه برنامه تحت شبکه بنویسید که یه نسخه‌اش رو روی کامپیوتر خودتون نصب کنید و نسخه‌ای از اون رو روی یه کامپیوتر دیگه و بعد اینا بین هم فایل رد و بدل کنند؟

----------


## AliSaeedi_v

سلام دوستان..من به شدت به این مشکل برخوردم..لطفا اگه میشه راهنمایی کنین چطور یه فایل رو توی شبکه انتقال بدیم یا دریافت کنیم... :گریه:

----------


## alonemm

باسلام:

برای کپی کردن فایل به کد زیر دقت کنید:


    Protected Sub btnUploadFile_Click(ByVal sender As Object, ByVal e As System.EventArgs)
        Dim myFtpWebRequest As FtpWebRequest
        Dim myFtpWebResponse As FtpWebResponse
        Dim myStreamWriter As StreamWriter

        myFtpWebRequest = WebRequest.Create("ftp://ftp_server_name/filename.ext")

        myFtpWebRequest.Credentials = New NetworkCredential("username", "password")

        myFtpWebRequest.Method = WebRequestMethods.Ftp.UploadFile
        myFtpWebRequest.UseBinary = True

        myStreamWriter = New StreamWriter(myFtpWebRequest.GetRequestStream())
        myStreamWriter.Write(New StreamReader(Server.MapPath("filename.ext")).ReadT  oEnd)
        myStreamWriter.Close()

        myFtpWebResponse = myFtpWebRequest.GetResponse()

        litResponse.Text = myFtpWebResponse.StatusDescription

        myFtpWebResponse.Close()
    End Sub

----------


## AliSaeedi_v

> سلام
> 
> من منظور شما رو درست متوجه نمی‌شم. شما میخواید یه برنامه تحت شبکه بنویسید که یه نسخه‌اش رو روی کامپیوتر خودتون نصب کنید و نسخه‌ای از اون رو روی یه کامپیوتر دیگه و بعد اینا بین هم فایل رد و بدل کنند؟


سلام بله دقیقا...

----------


## fakhravari

/// <summary>
        /// آپلود کردن فایل روی FTP هاست
        /// </summary>
        /// <param name="FileName">نام فایل</param>
        /// <param name="UploadPath">مسیر ftp مثال  ftp://fakhravary.somee.com/www.fakhravary.somee.com/  + نام فایل   </param>
        /// <param name="FTPUser">نام کاربری</param>
        /// <param name="FTPPass">پسورد</param>
        /// <returns></returns>
        public static bool UploadFileToFTP(string FileName, string UploadPath, string FTPUser, string FTPPass)
        {
            System.IO.FileInfo FileInfo = new System.IO.FileInfo(FileName);
            System.Net.FtpWebRequest FtpWebRequest = (System.Net.FtpWebRequest)System.Net.FtpWebRequest  .Create(new Uri(UploadPath));
            FtpWebRequest.Credentials = new System.Net.NetworkCredential(FTPUser, FTPPass);
            FtpWebRequest.KeepAlive = false;
            FtpWebRequest.Timeout = 100000;
            FtpWebRequest.Method = System.Net.WebRequestMethods.Ftp.UploadFile;
            FtpWebRequest.UseBinary = true;
            FtpWebRequest.ContentLength = FileInfo.Length;
            int buffLength = 2048;
            byte[] buff = new byte[buffLength];
            System.IO.FileStream FileStream = FileInfo.OpenRead();
            try
            {
                System.IO.Stream Stream = FtpWebRequest.GetRequestStream();
                int contentLen = FileStream.Read(buff, 0, buffLength);
                while (contentLen != 0)
                {
                    Stream.Write(buff, 0, contentLen);
                    contentLen = FileStream.Read(buff, 0, buffLength);
                }
                Stream.Close();
                Stream.Dispose();
                FileStream.Close();
                FileStream.Dispose();
                return true;
            }
            catch
            { return false; }
        }

----------

