让我解释一下:
这是此文件夹的路径:> www.my_site.com/images
图像由user_id
创建,例如,user_id = 27
的图像是,
27_1.jpg
,27_2.jpg
,27_3.jpg
!
如何列出和打印以27_%.jpg
开头的图像?
我希望你了解我!
PS。我完全是ASP.NET(VB)的初学者,请给我详细的信息
这里开始我的循环
while dbread.Read()
'and then id user_id
dbread('user_id')
NEXT ???
我需要创建XML,直到现在我创建了这样的:
act.WriteLine( “”) act.WriteLine( “http://www.my_site.com/images/” &安培; dbread( “USER_ID”)及 “_ 1.JPG”) act.WriteLine( “”)
但这不是答案,因为我需要创建此节点这个用户有多少图像存在?
在数据库中不存在此图像的列表,这就是我必须在文件夹中计算它们的原因。 (这不是我的网站,但我需要在这个网站上创建XMl)
你了解我吗?
答案 0 :(得分:1)
最好的方法是遍历目录中的所有文件。
While dbRead.Read
dim sUserId as String= dbread('user_id')
For Each sFile As String In IO.Directory.GetFiles("C:\")
if sFile.StartsWith (sUserId) Then
'Do something.
End If
Next
Loop
但是,要实际显示图像,最好的办法是创建这些图像的数据表,然后使用数据列表或转发器控件来显示它们。
Dim dtImages as new DataTable
dtImages.Columns.Add("Filename")
If dbRead.Read
dim sUserId as String= dbread('user_id')
For Each sFile As String In IO.Directory.GetFiles("C:\")
if sFile.StartsWith (sUserId) Then
Dim drImage as DataRow = dtImages.NewRow
drImage("Filename") = sFile
dtImages.Rows.add(drImage)
End If
Next
End If
dlImages.DataSource = dtImages
dlImages.DataBind
然后,在你的ASPX页面上,你将有一个名为dlImages的数据主义控件定义如下:
<asp:datalist id="dlImages" RepeatDirection="Horizontal" runat="server" RepeatLayout="Flow" Height="100%">
<ItemTemplate>
<asp:Image ID="Image1" Runat=server ImageUrl='<%# Server.MapPath("photos") & Container.DataItem("FileName") %>'>
</asp:Image>
</ItemTemplate>
</asp:datalist>
答案 1 :(得分:1)
适当的方法是执行以下操作
基本上,GetFiles方法接受一个路径,以及一个允许你进行通配符搜索的“filter”参数!
修改强> GetFiles操作返回表示完整文件名的字符串列表,然后您可以使用System.IO.Path.GetFileName()方法操作这些值以获取实际文件名。
如果要实际构建文档,可以使用XmlDocument类,也可以使用简单循环和字符串构建器来完成。如下所示。
StringBuilder oBuilder = new StringBuilder();
oBuilder.Append("<root>");
string[] ofiles = Directory.GetFiles("YourPath", "yourMask");
foreach(string currentString in oFiles)
{
oBuilder.AppendLine("<file>http://yourpath/" + Path.GetFileName(currentString) + "</file>");
}
oBuilder.Append("</root");