所以我正在进行一些测试,当使用列表框时,它会显示“C:/Test/Text.txt”,但我想要它说Text.txt。所以我目前有
ContentValues contentValues = new ContentValues();
contentValues.put(COLUMN_DAYS, days);
contentValues.put(tasbeehName, count);
sqLiteDatabase.update(TABLE_TASBEEH_COUNT, values, "DAYS = date('now')" , null);
sqLiteDatabase.setTransactionSuccessful();
sqLiteDatabase.endTransaction();
并在ListBox中显示private void FlatButton3_Click(object sender, EventArgs e)
{
ListBox1.Items.Clear();
string folder = @"C:/Aatrox";
string[] txtfiles = Directory.GetFiles(folder, "*.txt");
string[] luafiles = Directory.GetFiles(folder, "*.lua");
foreach (var item in folder)
{
ListBox1.Items.Add(Path.GetFileName(Convert.ToString(txtfiles)));
}
}
任何帮助?
答案 0 :(得分:3)
如果你想要.lua
个文件和.txt
文件(并且你使用的是.NET 4.5或更高版本),你可以使用一些LINQ来获取你想要的文件:
ListBox1.Items.Clear();
var files = Directory.EnumerateFiles(@"C:/Aatrox")
.Where(file => file.ToLower().EndsWith("lua")
|| file.ToLower().EndsWith("txt"));
foreach(var file in files)
{
ListBox1.Items.Add(Path.GetFileName(file));
}
使用像这样的非LINQ方法实际上可能更快:
ListBox1.Items.Clear();
foreach(var file in Directory.EnumerateFiles(@"C:/Aatrox"))
{
string extension = Path.GetExtension(file);
if(string.Compare(extension, ".lua", true) == 0
|| string.Compare(extension, ".txt", true) == 0)
{
ListBox1.Items.Add(Path.GetFileName(file));
}
}
答案 1 :(得分:2)
感谢@maccettura我得到了它。
private void FlatButton3_Click(object sender, EventArgs e)
{
ListBox1.Items.Clear();
string folder = @"C:/Aatrox";
string[] txtfiles = Directory.GetFiles(folder, "*.txt");
string[] luafiles = Directory.GetFiles(folder, "*.lua");
foreach (var item in txtfiles)
{
ListBox1.Items.Add(Path.GetFileName(item));
}
}
答案 2 :(得分:0)
这远非最有效的答案,但希望能帮助您理解。
var filenames = Directory.GetFiles("C:/Aatrox", "*.txt").ToList();
filenames.AddRange(Directory.GetFiles("C:/Aatrox", "*.lua"));
foreach (var filename in filenames)
listBox.Add(Path.GetFileName(filename));
答案 3 :(得分:0)
您正在循环使用文件夹变量并使用txtfiles变量而不是item。此外,将String转换为String也是无用的。也许你的代码应该是:
private void FlatButton3_Click(object sender, EventArgs e)
{
ListBox1.Items.Clear();
string folder = @"C:/Aatrox";
string[] txtfiles = Directory.GetFiles(folder, "*.txt");
string[] luafiles = Directory.GetFiles(folder, "*.lua");
foreach (var item in txtfiles)
{
ListBox1.Items.Add(Path.GetFileName(item));
}
}
额外:如果你还要列出* .lua文件,你必须做另一个foreach循环。
答案 4 :(得分:0)
var files = Directory.GetFiles(path, "*.*", SearchOption.Recursive);
var filter = files.Where(file => file.Contains(".txt") || file.Contains(".lua"));
foreach(var file in filter)
listbox.Items.Add(new FileInfo(file).Name);
代码非常简单,抓取目录中的文件,使用Linq过滤掉你想要的扩展名。然后循环,转换为FileInfo
以使用使用短名称的Name
属性。