예제 #1
0
        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;
        }
예제 #2
0
        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);
        }
예제 #3
0
파일: Extensions.cs 프로젝트: mfkl/Verify
 public static bool IsTextExtension(string extension)
 {
     return(TextExtensions.Contains(extension));
 }
예제 #4
0
파일: Extensions.cs 프로젝트: mfkl/Verify
    public static bool IsTextFile(string file)
    {
        var extension = Path.GetExtension(file).Substring(1);

        return(TextExtensions.Contains(extension));
    }