ขอความช่วยเหลือเรื่องการ Copy ไฟไปสู่ Portable device [PDA - Handheld] ครับ
ช่วงนี้เป็นช่วงฝึกงานของผมครับ แล้วบังเอิญน่าจะเป็นงานสุดท้ายแล้วที่พี่เลี้ยงมอบให้ผมและอีกสองอาทิตย์ก็ใกล้จะหมดฝึกงานแล้ว
โจทย์มีอยู่ว่า เขาต้องการให้ผมเขียน โปรแกรมขึ้นมาตัวนึง เพื่อที่จะใช้ก็อปปี้ .txt จากที่ใดที่หนึ่งไปเข้าเครื่อง PDA ครับ แล้วผมก็คิดว่าผมเขียนเสร็จแล้ว แล้วนำไปส่งให้พี่เลี้ยงตรวจสอบ เขาก็ให้ลองก็อปปี้ไฟล์ไปสู่เครื่อง PDA จริงๆผ่านสาย USB แล้วสิ่งที่ผมไม่ได้รู็และไม่ได้คิดไว้เลยคือ ผมหา Path ปลายทางที่จะใช้กำหนดเพื่อก็อปปี้ไฟล์ไม่ได้
เดิมทีการนำเข้านำออกไฟล์จาก PC ไปมากับ PDA จะมีโปรแกรมกลางตัวนึงคือ Activesync หรือ Windows Mobile device center บน Win7
แต่พี่เลี้ยงเขาต้องการให้มีโปรแกรมที่สามารถใช้แทนได้ และจะทำให้ง่ายมากขึ้นต่อการโยกย้ายไฟล์ไปมาในขอบเหขตที่จำกัด
รูปร่างหน้าตาของโปรแกรมครับ
ในส่วนของ textBox ด้านบนทั้งซ้ายและขวาจะเป็นการกำหนดต้นทาง และปลายทางครับ listBox ก็จะเป้นการแสดงไฟล์ที่เป้น .txt ที่มีอยูภายใน Path ของทั้งต้นทางและปลายทาง (ต้นทางด้านซ้าย ปลายทางด้านขวา)
ปัญหาหลักๆเลยคือ ผมไม่สามารถหา Path ของปลายทางที่เป็น PDA มาใช้กำหนดได้ครับ มันไม่ใช่ขึ้นเป็น Drive G:\, C:\, F:\ ทั่วไป
ไฟล์ภายในของ PDA ที่ผมต้องการเข้าไปคือ My Documents ซึ่งลำดับของมันคือ \WindowsCE\ \ \My Documents ( \ เป็นชื่อ Drive ภายใน ไม่ได้พิมพ์เกินแต่อย่างใด) ซึ่งปกติการที่เราจะทราบ Path ของที่ใดซักที่หนึ่ง สามารถใช้วิธี คลิกขวาบน Address ในขณะอยู่ที่หน้านั้นๆ แล้วเลือก Copy Address หรือ Edit Address หรือคลิกลงไปที่ Address ก็จะเห็นทั้ง Path
แต่ Path ที่ผมได้นั้นเป้น \WindowsCE\ \ \My Documents ไม่สามารถนำไปใช้ได้ (คุ้นๆว่าแบบนี้ ตอนนี้ยังไม่มีเครื่อง PDA มาเสียบแล้วแคปรูปให้ดู ขออภัยด้วยครับ)
ผมลองเสริชรูปจากกูเกิ้ลดูเจอคล้ายๆกัน(ของผมเป็น WindowsCE เป้นชื่อที่จะกำหนดยังไงก็ได้) เป็น Drive ที่อยู่ใน Portable Device
โค้ดปุ่ม Import ซึ่งก็เหมือนๆกับปุ่ม Import ซึ่งก็เป็นโค้ดก็อปปี้ธรรมดาๆ ที่สามารถใช้ได้ปกติบน Drive ธรรมดา
Code (C#)
private void pictureBox2_Click(object sender, EventArgs e)
{
try
{
string tmptarget = textBox2.Text; //<<------------ จะนำ Path จาก textbox ด้านขวามาเป็นตัวกำหนดปลายทาง
MessageBox.Show(tmptarget);
string tmpPath = listBox1.SelectedItem.ToString();
string sFile = tmpPath.Substring(tmpPath.LastIndexOf("\\") + 1);
//MessageBox.Show(sFile);
FileInfo f1 = new FileInfo(tmpPath);
string tmpTg = tmptarget + sFile;
if (File.Exists(tmpTg) == true)
{
DialogResult result = MessageBox.Show("ไฟล์ซ้ำ ต้องการทับไฟล์เดิมหรือไม่?", "ไฟล์ซ้ำ", MessageBoxButtons.YesNo, MessageBoxIcon.Warning);
if (result == DialogResult.Yes)
{
System.IO.File.Delete(tmpTg);
System.IO.File.Copy(tmpPath, tmpTg);
MessageBox.Show("Export ไฟล์เรียบร้อย", "แจ้งเตือน", MessageBoxButtons.OK, MessageBoxIcon.None);
}
}
else
{
System.IO.File.Copy(tmpPath, tmpTg);
MessageBox.Show("Export ไฟล์เรียบร้อย","แจ้งเตือน",MessageBoxButtons.OK,MessageBoxIcon.None);
listBox2.Items.Add(tmpTg);
}
}
catch (IOException)
{
MessageBox.Show("เกิดข้อผิดพลาดบางประการ Path หรือ ไฟล์ไม่มีอยู่จริง", "แจ้งเตือน", MessageBoxButtons.OK, MessageBoxIcon.Warning);
}
}
พอจะทราบวิธีหา Path มาเป็นปลายทางได้หรือปล่าวครับ ขอความกรุณาด้วยครับ ขอบคุณครับTag : .NET, C#
ประวัติการแก้ไข 2012-06-28 10:41:22 2012-06-28 10:42:42
Date :
2012-06-28 10:39:30
By :
cruzercruz
View :
2313
Reply :
3
ผมเจออยู่วิธีนึงเมื่อกี้ แต่ยังไม่ได้ลอง ยังไม่ได้ขอเครื่อง PDA พี่เขามา
http://greatfriends.biz/webboards/msg.asp?id=54399
Date :
2012-06-28 11:45:50
By :
cruzercruz
ผมเคยเขียนด้วยวิธีโบราญ ๆ ผ่าน Socket ครับ
Date :
2012-06-29 06:33:10
By :
mr.win
ทำได้แล้วครับ ตามวิธีที่ผมพบในลิ้งค์นั้นเลย ><
ถึงจะยุ่งยากไปหน่อย แต่ผมก็มีงานส่งพี่เขา 555
แต่ย้ายมือแบบดิบๆเลยผมว่าง่ายกว่านะ = =" ลากไฟล์ที่ต้องการ กด ctrl+c แล้วก็ไป ctrl+v ที่ปลายทาง = ="
แต่โปรแกรมผมก็ย้ายได้ไม่กี่คลิกหนะนะ ><
Date :
2012-06-29 11:07:43
By :
cruzercruz
Load balance : Server 00