Wpis z mikrobloga

Hej, nie wiem czemu w poniższym kodzie wywala mi wyjątek na próbie programowego zapisania właściwości pliku jpeg w C#. Wyjątek wywala w linijce z GetPropertyWriter:

Microsoft.WindowsAPICodePack.Shell.PropertySystem.PropertySystemException: „Unable to get writable property store for this property.”
Wewnętrzny wyjątek: FileLoadException: Proces nie może uzyskać dostępu do pliku, ponieważ jest on używany przez inny proces. (Exception from HRESULT: 0x80070020)

Dodam, że plik nie jest otwarty nigdzie indziej, nie jest 'tylko do odczytu', można ręcznie modyfikować tytuł we właściwościach pliku.

using Microsoft.WindowsAPICodePack.Shell;
using Microsoft.WindowsAPICodePack.Shell.PropertySystem;

private void GetTitle(String path)
{
var file = ShellFile.FromFilePath(path);
string oldTitle = file.Properties.System.Title.Value;
System.Windows.MessageBox.Show(oldTitle);
ShellPropertyWriter propertyWriter = file.Properties.GetPropertyWriter();
propertyWriter.WriteProperty(SystemProperties.System.Title, new string[] { "Test title" });
propertyWriter.Close();
}

#programowanie #dotnet
  • 4