public override void Load(Call call, TabModel model) { var items = new ItemCollection <ListItem>(); string extension = System.IO.Path.GetExtension(Tab.Path); if (extension == ".json") { items.Add(new ListItem("Contents", LazyJsonNode.LoadPath(Tab.Path))); //items.Add(new ListItem("Contents", JsonValue.Parse(File.ReadAllText(path)))); } else { bool isText = TextExtensions.Contains(extension); if (!isText) { try { // doesn't work using StreamReader streamReader = File.OpenText(Tab.Path); var buffer = new char[100]; streamReader.Read(buffer, 0, buffer.Length); isText = true; } catch (Exception) { } } if (isText) { items.Add(new ListItem("Contents", new FilePath(Tab.Path))); } else { items.Add(new ListItem("Contents", null)); } } model.Items = items; }
public async Task <FileStatistics> ProcessFile(string path, CancellationToken cancellationToken) { cancellationToken.ThrowIfCancellationRequested(); var info = new FileInfo(path); long lines = 0; if (TextExtensions.Contains(Path.GetExtension(path))) { using var r = info.OpenText(); while (true) { if ((lines & 127) == 0) { cancellationToken.ThrowIfCancellationRequested(); } var line = await r.ReadLineAsync().ConfigureAwait(false); if (line == null) { break; } lines++; } } var statistics = new FileStatistics() { Count = 1, Size = info.Length, Lines = lines }; AddFileStatistics(path, false, statistics); return(statistics); }
public static bool IsTextExtension(string extension) { return(TextExtensions.Contains(extension)); }
public static bool IsTextFile(string file) { var extension = Path.GetExtension(file).Substring(1); return(TextExtensions.Contains(extension)); }