Skip to content

Commit 7fed8b0

Browse files
committed
fix: ignore windows system files for cover art
1 parent 56a1d61 commit 7fed8b0

File tree

4 files changed

+20
-0
lines changed

4 files changed

+20
-0
lines changed

src/Nagi.Core/Services/Abstractions/IFileSystemService.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ public interface IFileSystemService
2121
void MoveFile(string sourceFileName, string destFileName, bool overwrite);
2222
DateTime GetLastWriteTimeUtc(string path);
2323
FileInfo GetFileInfo(string path);
24+
bool IsHiddenOrSystemFile(string path);
2425
string GetFileNameWithoutExtension(string path);
2526
string GetFileName(string path);
2627
string? GetDirectoryName(string path);

src/Nagi.Core/Services/Implementations/AtlMetadataService.cs

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -367,6 +367,9 @@ private async Task ProcessCoverArtFromDirectoryAsync(SongFileMetadata metadata,
367367

368368
foreach (var filePath in files)
369369
{
370+
if (_fileSystem.IsHiddenOrSystemFile(filePath))
371+
continue;
372+
370373
var extension = _fileSystem.GetExtension(filePath);
371374
if (!FileExtensions.ImageFileExtensions.Contains(extension))
372375
continue;

src/Nagi.Core/Services/Implementations/LibraryService.cs

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3162,6 +3162,9 @@ await ImageStorageHelper.SaveImageBytesAsync(_fileSystem,
31623162

31633163
foreach (var filePath in files)
31643164
{
3165+
if (_fileSystem.IsHiddenOrSystemFile(filePath))
3166+
continue;
3167+
31653168
var extension = _fileSystem.GetExtension(filePath);
31663169
if (!FileExtensions.ImageFileExtensions.Contains(extension))
31673170
continue;

src/Nagi.WinUI/Services/Implementations/FileSystemService.cs

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -134,6 +134,19 @@ public FileInfo GetFileInfo(string path)
134134
return new FileInfo(path);
135135
}
136136

137+
public bool IsHiddenOrSystemFile(string path)
138+
{
139+
try
140+
{
141+
var fileInfo = new FileInfo(path);
142+
return fileInfo.Attributes.HasFlag(FileAttributes.Hidden) || fileInfo.Attributes.HasFlag(FileAttributes.System);
143+
}
144+
catch
145+
{
146+
return false;
147+
}
148+
}
149+
137150
public string GetFileNameWithoutExtension(string path)
138151
{
139152
return Path.GetFileNameWithoutExtension(path);

0 commit comments

Comments
 (0)