标题:请问各位一个有关文件目录读取的问题
取消只看楼主
xl_1983_10
Rank: 1
等 级:新手上路
帖 子:28
专家分:0
注 册:2006-9-25
 问题点数:0 回复次数:7 
请问各位一个有关文件目录读取的问题

请问各位一个有关文件目录读取的问题

当使用以下语句时
string str = "E:/ASP.NET/1234/asp.bcp";
int index = 0;
int index1 = 0;
for (int i = str.Length - 1; str[i] != '/'; i--) //取一个例如路径为E:/ASP.NET/1234/asp.bcp 的文件中最后一个'/'的函数
{
index1 = i;//index保存文件路径中最后一个'/'的地址
}
index = index1;
string filepath = "";//filepath为读出文件的目录
for (int j = 0; j < index; j++)
{
filepath = filepath + str[j];
}
Label1.Text = filepath;//可读出E:/ASP.NET/1234/

运行OK

但是当把
string str = "E:/ASP.NET/1234/asp.bcp"; 改为
string str = FileUpload1.FileName.ToString(); 后便出错
由于FileUpload中显示的文件名目录中为'"E:\ASP.NET\1234\asp.bcp"; ,而输入'\'就出错
为什么asp.net中输入'/'便出错的

怎么解决

搜索更多相关主题的帖子: 文件目录 str int bcp 
2006-09-27 11:01
xl_1983_10
Rank: 1
等 级:新手上路
帖 子:28
专家分:0
注 册:2006-9-25
得分:0 

什么意思 不明白 能说具体点吗 谢谢

2006-09-27 13:21
xl_1983_10
Rank: 1
等 级:新手上路
帖 子:28
专家分:0
注 册:2006-9-25
得分:0 
你说在字符串前面加个@

比如:
string str = @"E:\ASP.NET\1234\asp.bcp";

问题是我的程序

string str = FileUpload1.FileName.ToString();
int index = 0;
int index1 = 0;
for (int i = str.Length - 1; str[i] != '/'; i--) {
index1 = i;//index保存文件路径中最后一个'/'的地址
}
index = index1;
string filepath = "";//filepath为读出文件的目录
for (int j = 0; j < index; j++)
{
filepath = filepath + str[j];
}
中直接读出filepath后将这个目录下的以.bcp结尾的所有文件显示到listbox控件中,加不了

2006-09-27 13:27
xl_1983_10
Rank: 1
等 级:新手上路
帖 子:28
专家分:0
注 册:2006-9-25
得分:0 

路径在运行时可以FileUpload控件 的brows 中选 显示的是路径中为‘\',而不是‘/’.
所以 写 for (int i = str.Length - 1; str[i] != '\'; i--) 时出错

而写为 for (int i = str.Length - 1; str[i] != '/'; i--) 时没出错

不知为什么

我使用这个控件主要想读出所选文件夹的目录 不知还有什么控件可以

2006-09-27 14:07
xl_1983_10
Rank: 1
等 级:新手上路
帖 子:28
专家分:0
注 册:2006-9-25
得分:0 

这样改后是没有语法问题 但是无法执行 你可以试一下

2006-09-27 14:17
xl_1983_10
Rank: 1
等 级:新手上路
帖 子:28
专家分:0
注 册:2006-9-25
得分:0 

我的程序具体是这样的 有三个控件 分别是 FileUpLoad1,Lable1(text属性为空)和Button1

Default.aspx.cs中程序为
using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;

public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{

if (!Page.IsPostBack)
{
string str = "E:/ASP.NET/1234/asp.bcp";
int index = 0;
int index1 = 0;
for (int i = str.Length - 1; str[i] != '/'; i--)
{
index1 = i;//index保存文件路径中最后一个'/'的地址
}
index = index1;
string filepath = "";//filepath为读出文件的目录
for (int j = 0; j < index; j++)
{
filepath = filepath + str[j];
}
Label1.Text = filepath;//可读出E:/ASP.NET/1234/

}


}
protected void Button1_Click(object sender, EventArgs e)
{

string str = "E:/ASP.NET/1234/asp.bcp";
int index = 0;
int index1 = 0;
for (int i = str.Length - 1; str[i] != '\\'; i--) {
index1 = i;
}
index = index1;
string filepath = "";//filepath为读出文件的目录
for (int j = 0; j < index; j++)
{
filepath = filepath + str[j];
}
}
}
这样可在Label1中显示E:/ASP.NET/1234/
但是改为
string str = FileUpload1.FileName.ToString();//读出整个文件路径
int index = 0;
int index1 = 0;
for (int i = str.Length - 1; str[i] != '\'; i--) //取一个例如路径为 E:/ASP.NET/1234/asp.bcp 的文件中最后一个'/'的函数
{
index1 = i;//index保存文件路径中最后一个'/'的地址
}
index = index1;
string filepath = "";//filepath为读出文件的目录
for (int j = 0; j < index; j++)
{
filepath = filepath + str[j];
}
Label1.Text = filepath;
后无法运行 因为从FileUpload控件 的brows 中选 则文件后 显示的是路径中为‘\',而不是‘/’

2006-09-27 14:36
xl_1983_10
Rank: 1
等 级:新手上路
帖 子:28
专家分:0
注 册:2006-9-25
得分:0 
请问str[i] != @"\";  不对吧  @"\"是string     而str[i] 是char型  怎么比较
2006-09-27 14:39
xl_1983_10
Rank: 1
等 级:新手上路
帖 子:28
专家分:0
注 册:2006-9-25
得分:0 

非常感谢大家的帮助
我找到了一个语句,可以直接读出
语句为

if (FileUpload1.HasFile)
Label1.Text = System.IO.Path.GetDirectoryName(FileUpload1.PostedFile.FileName );

执行此语句可以直接读出文件的目录 例如:在FileUpload1中选取文件D:\qq.txt
则Label1中显示D:\

2006-09-29 12:59



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-93227-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.061105 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved