我正在尝试制作一个将文件存储为基于*.txt
的文档的程序。我希望能够单击按钮并提取当前存储的文件列表
(Located in C:\ProgramData\ProgramName\Incidents)
以上是我尝试完成的示例,其中140219-000727
是文件的名称,其余部分并不需要。单击“打开”或“双击”将打开"打开"该文件并将.txt解析为我已经创建的WinForm应用程序上的预先存在的表单。
以最小的系统资源命中率最好的方法是什么?
答案 0 :(得分:1)
我认为Directory.GetFiles
正是您所寻找的。你可以使用最简单的面具" * .txt"获取所有txt文件,然后使用Path.GetFileName
从完整路径中剪切文件名。
稍后(双击或按钮单击)使用目录名+文件名进行打开:
//populating:
var files = Directory.GetFiles(YOUR_FOLDER_PATH, "*.txt");
foreach (var file in files)
{
var fileName = Path.GetFileName(file);
//assuming ListBox:
listBox.Items.Add(filename);
}
//opening (from listbox)
var fileName = Path.Combine(YOUR_FOLDER_PATH, listBox.SelectedItem.ToString());
File.ReadAllText(fileName);
答案 1 :(得分:1)
你只需要一个FolderBrowserDialog控件。
var fileNames = new List<string>();
var fileContents = new Dictionary<string, string>();
var filePaths = Directory.EnumerateFiles(folderBrowserDialog1.SelectedPath, "*.txt");
foreach (var filePath in filePaths)
{
var fileName =new FileInfo(filePath).Name;
fileNames.Add(fileName);
fileContents.Add(fileName, File.ReadAllText(filePath));
}