-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathTagUtils.cs
More file actions
31 lines (27 loc) · 1018 Bytes
/
TagUtils.cs
File metadata and controls
31 lines (27 loc) · 1018 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
// Copyright Bastian Eicher
// Licensed under the MIT License
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using NanoByte.Common;
using NanoByte.Common.Storage;
namespace NanoByte.LightTag
{
public static class TagUtils
{
public static void WriteTags(this FileInfo file, IEnumerable<string> tags)
{
string tagsData = StringUtils.Join(Environment.NewLine, tags);
FileUtils.WriteExtendedMetadata(file.FullName, "LightTag", Encoding.UTF8.GetBytes(tagsData));
}
public static IEnumerable<string> ReadTags(this FileInfo file)
{
var data = FileUtils.ReadExtendedMetadata(file.FullName, "LightTag");
if (data == null) return Enumerable.Empty<string>();
string tagData = Encoding.UTF8.GetString(data);
return tagData.Split(new[] {Environment.NewLine}, StringSplitOptions.RemoveEmptyEntries);
}
}
}