因此,我通过UWP创建了sample.txt
,并在UWP应用的本地文件夹中复制/粘贴了sample2.pdf
和sample3.mp4
。
所以现在我的文件夹中有这3个文件。
然后我创建了一个应保存filename, extension, id and modifiedDate
现在,我想使用示例文件的信息来创建此类的列表。类变量的示例为:filename = sample, extension = .txt, id = sample, modified date = 30.10.2018 09:00
我该怎么做?
到目前为止,我的代码:
public sealed partial class MainPage : Page
{
Windows.Storage.StorageFolder storageFolder;
Windows.Storage.StorageFile sampleFile;
List<FileElements> fileInformation = new List<FileElements>();
public MainPage()
{
this.InitializeComponent();
moth();
}
async void moth()
{
storageFolder =
Windows.Storage.ApplicationData.Current.LocalFolder;
sampleFile =
await storageFolder.CreateFileAsync("sample.txt",
Windows.Storage.CreationCollisionOption.ReplaceExisting);
}
public class FileElements
{
public string filename { get; set; }
public string extension { get; set; }
public string id { get; set; }
public string modifiedDate { get; set; }
}
}
我试图用foreach()
方法来解决它,但是它不起作用
“ foreach语句无法对类型为StorageFile的变量进行操作,因为StorageFile不包含GetEnumerator的公共定义”
答案 0 :(得分:4)
DirectoryInfo().GetFiles()
返回一个FileInfo()
数组,其中包含您需要的所有信息,因此您可以通过任意方式从中选择:
var result = System.IO.DirectoryInfo dir = new DirectoryInfo(dirPath);
dir.GetFiles().Select((x,i) => new FileElements {
filename = Path.GetFileNameWithoutExtension(x.FullName),
extension = x.Extension,
id = i.ToString(),
modifiedDate = x.LastWriteTime.ToString()
});
编辑(考虑您的评论):
以上结果是一个IEnumerable<FileElements>
,它不支持索引编制,但可以在foreach循环中使用。但是,您只需通过.ToArray()
即可将其转换为FileElements []以便能够使用索引:
var result = System.IO.DirectoryInfo dir = new DirectoryInfo(dirPath);
dir.GetFiles().Select((x,i) => new FileElements {
filename = Path.GetFileNameWithoutExtension(x.FullName),
extension = x.Extension,
id = i.ToString(),
modifiedDate = x.LastWriteTime.ToString()
}).ToArray();