implement FileSystemEditor checking valid filenames with invalid filenames and characters settings
This commit is contained in:
parent
7b1fc44390
commit
c644bb21af
@ -51,6 +51,38 @@ namespace UniversalEditor.Editors.FileSystem
|
||||
|
||||
private const int DELIVERED_COLUMNS_COUNT = 5;
|
||||
|
||||
private string GetInvalidFileNameChars(FileSystemObjectModel fsom)
|
||||
{
|
||||
string invalidPathChars = ((UIApplication)Application.Instance).GetSetting<string>(FileSystemEditorSettingsGuids.InvalidPathChars);
|
||||
return invalidPathChars;
|
||||
}
|
||||
private string GetInvalidFileNamesStr(FileSystemObjectModel fsom)
|
||||
{
|
||||
string invalidFileNamesStr = ((UIApplication)Application.Instance).GetSetting<string>(FileSystemEditorSettingsGuids.InvalidFileNames);
|
||||
return invalidFileNamesStr;
|
||||
}
|
||||
private string[] GetInvalidFileNames(FileSystemObjectModel fsom)
|
||||
{
|
||||
string invalidFileNamesStr = GetInvalidFileNamesStr(fsom);
|
||||
if (String.IsNullOrEmpty(invalidFileNamesStr))
|
||||
return new string[0];
|
||||
|
||||
string[] invalidFileNames = invalidFileNamesStr.Split(new char[] { ',' });
|
||||
return invalidFileNames;
|
||||
}
|
||||
private bool CheckValidFileName(FileSystemObjectModel fsom, string filename)
|
||||
{
|
||||
string invalidPathChars = GetInvalidFileNameChars(fsom);
|
||||
string[] invalidFileNames = GetInvalidFileNames(fsom);
|
||||
|
||||
// string[] filePath = filename.Split(fsom.PathSeparators);
|
||||
string fileTitle = filename; // filePath[filePath.Length - 1];
|
||||
|
||||
bool containsInvalidFileNames = invalidFileNames.Length > 0 && fileTitle.EqualsAny(invalidFileNames);
|
||||
bool containsInvalidChars = String.IsNullOrEmpty(invalidPathChars) || fileTitle.ContainsAny(invalidPathChars.ToCharArray());
|
||||
return !(containsInvalidFileNames || containsInvalidChars);
|
||||
}
|
||||
|
||||
[EventHandler(nameof(txtPath), "KeyDown")]
|
||||
private void txtPath_KeyDown(object sender, KeyEventArgs e)
|
||||
{
|
||||
|
||||
@ -24,5 +24,7 @@ namespace UniversalEditor.Editors.FileSystem
|
||||
public class FileSystemEditorSettingsGuids
|
||||
{
|
||||
public static Guid SingleClickToOpenItems { get; } = new Guid("{409C4308-BA99-489F-BD33-4122E430709D}");
|
||||
public static Guid InvalidPathChars { get; } = new Guid("{2fd5348a-2a74-4cdf-9f07-43011b109bde}");
|
||||
public static Guid InvalidFileNames { get; } = new Guid("{bfc2323b-a628-419c-827b-fed169ce176e}");
|
||||
}
|
||||
}
|
||||
|
||||
@ -47,6 +47,17 @@
|
||||
<Part>Search and Preview</Part>
|
||||
</Path>
|
||||
</SettingsGroup>
|
||||
<SettingsGroup ID="{e8c41127-956e-49a4-a409-deb62590d4be}">
|
||||
<Path>
|
||||
<Part>Editors</Part>
|
||||
<Part>File System</Part>
|
||||
<Part>Compatibility</Part>
|
||||
</Path>
|
||||
<Settings>
|
||||
<TextSetting ID="{2fd5348a-2a74-4cdf-9f07-43011b109bde}" Name="InvalidPathChars" Title="Invalid filename characters" Value="/<>:"\\|?*" />
|
||||
<TextSetting ID="{bfc2323b-a628-419c-827b-fed169ce176e}" Name="InvalidFileNames" Title="Invalid filenames" Value="CON,PRN,AUX,NUL,COM1,COM2,COM3,COM4,COM5,COM6,COM7,COM8,COM9,LPT1,LPT2,LPT3,LPT4,LPT5,LPT6,LPT7,LPT8,LPT9" />
|
||||
</Settings>
|
||||
</SettingsGroup>
|
||||
</SettingsProvider>
|
||||
</SettingsProviders>
|
||||
</ApplicationFramework>
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user