C# 将数据添加到for循环内部的二维数组中
我想制作一个简单的应用程序,在listview列中列出文件夹中的所有文件,子目录路径是另一列。为此,我创建了一个二维数组,并尝试将文件名添加到第一列,将路径添加到另一列。这是我的密码C# 将数据添加到for循环内部的二维数组中,c#,arrays,C#,Arrays,我想制作一个简单的应用程序,在listview列中列出文件夹中的所有文件,子目录路径是另一列。为此,我创建了一个二维数组,并尝试将文件名添加到第一列,将路径添加到另一列。这是我的密码 { string pathtoList; string fileName; string DirName; pathtoList = (@"D:\Videos"); string[] allFileNames
{
string pathtoList;
string fileName;
string DirName;
pathtoList = (@"D:\Videos");
string[] allFileNames = System.IO.Directory.GetFiles(pathtoList, "*.*", System.IO.SearchOption.AllDirectories);
string[,] call1= new string[allFileNames.Length,2];
for (int i = 0; i< allFileNames.Length; i++)
{
fileName = System.IO.Path.GetFileNameWithoutExtension(allFileNames[i].ToString());
DirName = System.IO.Path.GetDirectoryName(allFileNames[i].ToString());
call1[0, i] = fileName;
call1[1, i] = DirName;
}
}
{
弦乐探路者;
字符串文件名;
字符串名称;
路径列表=(@“D:\Videos”);
字符串[]allFileNames=System.IO.Directory.GetFiles(路径列表,“**”,System.IO.SearchOption.AllDirectories);
string[,]call1=新字符串[AllFileName.Length,2];
for(int i=0;i
当我这样做时,我得到一个异常“索引超出了数组的边界”
有人能告诉我这是怎么回事吗?
谢谢你声明了数组
[allFileNames.Length,2]
然后切换索引,这是一个解决方案
call1[i, 0] = fileName;
call1[i, 1] = DirName;
您声明了数组
[allFileNames.Length,2]
然后切换索引,这是一个解决方案
call1[i, 0] = fileName;
call1[i, 1] = DirName;
您切换了索引,这应该可以工作:
{
string pathtoList;
string fileName;
string DirName;
pathtoList = (@"D:\Videos");
string[] allFileNames = System.IO.Directory.GetFiles(pathtoList, "*.*", System.IO.SearchOption.AllDirectories);
string[,] call1= new string[allFileNames.Length,2];
for (int i = 0; i< allFileNames.Length; i++)
{
fileName = System.IO.Path.GetFileNameWithoutExtension(allFileNames[i].ToString());
DirName = System.IO.Path.GetDirectoryName(allFileNames[i].ToString());
call1[i, 0] = fileName; // or leave it as it was before and declare string[,] call1= new string[2, allFileNames.Length];
call1[i, 1] = DirName; //same as above
}
}
{
弦乐探路者;
字符串文件名;
字符串名称;
路径列表=(@“D:\Videos”);
字符串[]allFileNames=System.IO.Directory.GetFiles(路径列表,“**”,System.IO.SearchOption.AllDirectories);
string[,]call1=新字符串[AllFileName.Length,2];
for(int i=0;i
您切换了索引,这应该可以工作:
{
string pathtoList;
string fileName;
string DirName;
pathtoList = (@"D:\Videos");
string[] allFileNames = System.IO.Directory.GetFiles(pathtoList, "*.*", System.IO.SearchOption.AllDirectories);
string[,] call1= new string[allFileNames.Length,2];
for (int i = 0; i< allFileNames.Length; i++)
{
fileName = System.IO.Path.GetFileNameWithoutExtension(allFileNames[i].ToString());
DirName = System.IO.Path.GetDirectoryName(allFileNames[i].ToString());
call1[i, 0] = fileName; // or leave it as it was before and declare string[,] call1= new string[2, allFileNames.Length];
call1[i, 1] = DirName; //same as above
}
}
{
弦乐探路者;
字符串文件名;
字符串名称;
路径列表=(@“D:\Videos”);
字符串[]allFileNames=System.IO.Directory.GetFiles(路径列表,“**”,System.IO.SearchOption.AllDirectories);
string[,]call1=新字符串[AllFileName.Length,2];
for(int i=0;i