████████【马上给分】C#如何取得特殊文件夹路径及文件名!██████

csdn8008 2003-10-23 06:03:10
以下代码不能写入文件,不知是什么原因,请帮忙。

//取得网络流传来的文件名,存入strout
string strout = Encoding.Unicode.GetString(read);

//取得我的文档文件路径,并加上文件名,"\\"+strout换成"\\a.txt"后一固定文件名可以写入文件a.txt。
string path1 = Environment.GetFolderPath(Environment.SpecialFolder.Personal).ToString()+"\\"+strout;

//写入文件
fileWriter = new FileStream(path1,FileMode.Create);

应该怎么办?让用户传上文件后以相同文件名自动存入一个指定的文件夹。
...全文
43 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
csdn8008 2003-10-24
  • 打赏
  • 举报
回复
UP!
windows应用程序。让用户传上文件后以相同文件名自动存入一个指定的文件夹。
与传输的文件同名,不是程序中指定的。
初步认为和read数组有关,如read定义为byte[512],strout长度就是256,1024就是512,而实际上read只是传输了文件名aa.txt 6个长度。

byte[] read = new byte[1024];
ns = tcpc.GetStream();
……
//取得网络流传来的文件名,存入strout
string strout = Encoding.Unicode.GetString(read);

//取得我的文档文件路径,并加上文件名,"\\"+strout换成"\\a.txt"后一固定文件名可以写入文件a.txt。
string path1 = Environment.GetFolderPath(Environment.SpecialFolder.Personal).ToString()+"\\"+strout;

//写入文件,这里无法写入
fileWriter = new FileStream(path1,FileMode.Create);
nichen 2003-10-24
  • 打赏
  • 举报
回复
byte[] read = new byte[1024];
string strout = Encoding.Unicode.GetString(read);

可以看出,strout是1024的数组,
strout.Trim()方法不行,不影响长度。我以前也试过。

你可以试一下别的方法,取得网络流传来的文件名后,怎么转化一下,而不是直接引用。
具体我也不清楚,哈,等待高人出现。
jl1024 2003-10-24
  • 打赏
  • 举报
回复
你可能需要把strout中的空白字符全部滤掉。
...

strout=strout.Trim();
string path1 = Environment.GetFolderPath(Environment.SpecialFolder.Personal).ToString()+"\\"+strout;
...
csdn8008 2003-10-23
  • 打赏
  • 举报
回复
windows应用程序。

让用户传上文件后以相同文件名自动存入一个指定的文件夹。

解决就给分!
不够再开帖加。
csdn8008 2003-10-23
  • 打赏
  • 举报
回复
不是,这是windows应用程序。
是不是Encoding.Unicode的问题。

我测长表示不含路径的文件名"aa.txt"的 strout 长度为512
MessageBox.Show(strout.Length.ToString());

而文件名只是"aa.txt"长度6

为什么相同的字符串(用MessageBox.Show显示字符串一样)长度差别这么大?

求救!
billqi 2003-10-23
  • 打赏
  • 举报
回复
把我的文档文件夹安全设定增加给aspnet用户所用控制权。

110,539

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧