none
Socket檔案傳輸路徑的問題 RRS feed

  • 問題

  • 我在網路上 有參考了一篇關於Socket檔案傳輸的文章

    在進行傳送檔案時 他會預設檔案傳送的路徑在執行檔同個目錄底下

    foreach (string fname in System.IO.Directory.GetFiles("folder"))
                    {

                        Socket clientSock = new
                        Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.IP);
                        clientSock.Connect(ipEnd);
                        string fileName = System.Windows.Forms.Application.StartupPath;

    }                   
    但因為我想傳特定某個資料夾內的東西 而不是在執行檔同個目錄底下的 所以我改良了一下路徑

    string[] dirs = Directory.GetFiles(@"C:\Users\Kevin Chang\Desktop\0.0\folder\", "*.txt");

                    foreach (string fname in dirs)
                    {
                        Socket clientSock = new
                        Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.IP);
                        clientSock.Connect(ipEnd);
                        string fileName = @"C:\Users\Kevin Chang\Desktop\0.0\folder";
                        byte[] fileNameByte = Encoding.ASCII.GetBytes("\\" + fname);
                        //將檔案路徑與名稱轉為位元組                        

                   } 

    但是執行程式時 對話框顯示出 File Sending fail.不支援指定的路徑格式 請問有方法能讓我傳送指定的路徑嗎 感激不盡!

    • 已編輯 kie5843 2018年4月13日 下午 03:22
    2018年4月13日 上午 08:22

所有回覆

  • 在 VS IDE 開發環境執行下,當跳出錯誤時,錯誤行反黃色,滑鼠停在變數上,就可以看到相關變數內容,依照內容偵錯。

    不精確的問法,就會得到隨便猜的答案;自己都不肯花時間好好描述問題,又何必期望網友會認真回答?

    2018年4月13日 上午 10:57
  • 將這一行程式碼:

    byte[] fileNameByte = Encoding.ASCII.GetBytes(/*filePath*/"\\" + fname);

    改成這樣再試看看:

    byte[] fileNameByte = Encoding.ASCII.GetBytes(Path.Combine(filePath, fname);

    還有您的程式碼中看不到filePath的定義

    2018年4月13日 下午 12:42
  • 謝謝回復! 還是出現一樣的錯誤訊息 對話框一樣顯示File Sending fail.不支援的指定的路徑格式!
    2018年4月13日 下午 03:17
  • 不好意思 filePath是我多打上去的 所以這變數沒有使用到 謝謝您的回覆
    2018年4月13日 下午 03:19
  • 請檢查filePath內容是否正確?
    2018年4月14日 上午 02:45
  • 你的 Socket 是自己做的,Socket 裡面沒有自動傳送檔案功能。

    但是你的錯誤訊息是 File Sending fail ,顯然是你的程式碼自訂錯誤,你這段沒撈出來,很難討論甚麼。


    不精確的問法,就會得到隨便猜的答案;自己都不肯花時間好好描述問題,又何必期望網友會認真回答?

    2018年4月14日 上午 11:00