Dateimetadaten Kommentar ändern

  • VB.NET
  • .NET (FX) 4.5–4.8

Es gibt 29 Antworten in diesem Thema. Der letzte Beitrag () ist von Westerwälder.

    Dateimetadaten Kommentar ändern

    Guten Abend,

    speichere meine Fotos, Musik, Briefe in jeweils dafür vorgesehenen Verzeichnisse ab.
    Dieses System wird fortlaufend nummeriert.

    Beispiel Bilder:

    10001.jpg
    10002.jpg
    10003.jpg

    Betrachte ich die Bilder an meinem PC mit meinem VB-Programm, finde ich sofort das richtige Bild, da dieses in einer Datenbank beschrieben ist.
    Möchte ich jemand ein Foto am Tablet oder Handy (Onedrive) zeigen, ist das Chaos perfekt.

    Nun habe ich im Windows-Explorer die Ansicht Kommentare aktiviert.
    Würde gerne in alle Dateien (jpg, mp3, xlsx usw.) unter den Metadaten Kommentar den Bezug zur Datei eintragen.
    Gruß Markus

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „Westerwälder“ ()

    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Guten Morgen,

    danke Rod für die Hinweise.
    Mit dem folgenden Code

    VB.NET-Quellcode

    1. Public Class CDateimetadaten
    2. Public Bild As CBild
    3. Public Sub Initalisieren()
    4. Me.Bild = New CBild
    5. Me.Bild.Korrektur(Pfade.Foto.Pfad & "1000010.jpg", "Geburtstag Tim", "Bild mit Kommentar")
    6. End Sub
    7. Public Class CBild
    8. Private Const PropertyComment As Integer = &H9286
    9. Private Const PropertyTitle As Integer = &H320
    10. Public Sub Korrektur(ByVal DateiPfad As String, ByVal Titel As String, ByVal Kommentar As String)
    11. Using Jpg As Image = Image.FromFile(DateiPfad)
    12. Dim PropItemTitle As Imaging.PropertyItem = Jpg.GetPropertyItem(PropertyTitle) ' Fehler: Die Eigenschaft kann nicht gefunden werden
    13. Dim PropItemComment As Imaging.PropertyItem = Jpg.GetPropertyItem(PropertyComment) ' Fehler: Die Eigenschaft kann nicht gefunden werden
    14. Dim Enc As System.Text.ASCIIEncoding = New System.Text.ASCIIEncoding()
    15. With PropItemTitle
    16. .Value = Enc.GetBytes(Titel)
    17. .Len = .Value.Length
    18. End With
    19. With PropItemComment
    20. .Value = Enc.GetBytes(Kommentar)
    21. .Len = .Value.Length
    22. End With
    23. With Jpg
    24. .SetPropertyItem(PropItemTitle)
    25. .SetPropertyItem(PropItemComment)
    26. .Save(Pfade.DATA.Pfad & "Test.jpg", Imaging.ImageFormat.Jpeg)
    27. End With
    28. End Using
    29. End Sub
    30. End Class
    31. End Class


    erhalte ich die Fehlermeldung:
    Die Eigenschaft kann nicht gefunden werden.
    Dies gilt für den Titel und Kommentar.
    Gruß Markus

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Westerwälder“ ()

    Habe mich mit dem Thema beschäftigt.

    0x9286
    37510
    Photo
    Exif.Photo.UserComment
    Comment
    A tag for Exif users to write keywords or comments on the image
    besides those in <ImageDescription>, and without the character
    code limitations of the <ImageDescription> tag.

    Liste ich alle ID's aus dem Bild auf, ist die 37510 nicht dabei, obwohl ich manuell in dem Bild zu Testzwecken einen Kommentar eingetragen habe.
    Gruß Markus
    @Westerwälder Hast Du mal probiert, einen solchen Tag hinzuzufügen?
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Habe nun eine brauchbare Lösung

    VB.NET-Quellcode

    1. Public Sub Korrektur(ByVal Datei As String, ByVal Titel As String, ByVal Kommentar As String)
    2. Dim QuellDatei As String = Pfade.Foto.Pfad & Datei
    3. Dim SpeicherDatei As String = Pfade.Foto.Pfad & "Metakorrektur.jpg"
    4. If IO.File.Exists(SpeicherDatei) Then IO.File.Delete(SpeicherDatei)
    5. Using Jpg As Image = Image.FromFile(QuellDatei)
    6. Dim Info As PropertyItem = Nothing
    7. For Each Info In Jpg.PropertyItems
    8. If Info.Id = 40092 Then 'Kommentar
    9. Info.Value = System.Text.Encoding.Unicode.GetBytes(Kommentar)
    10. Info.Len = Info.Value.Length
    11. End If
    12. If Info.Id = 40094 Then ' Markierung
    13. Info.Value = System.Text.Encoding.Unicode.GetBytes("Irgendwas")
    14. Info.Len = Info.Value.Length
    15. End If
    16. Jpg.SetPropertyItem(Info)
    17. Next
    18. Jpg.Save(SpeicherDatei, Imaging.ImageFormat.Jpeg)
    19. End Using
    20. IO.File.Delete(QuellDatei)
    21. Rename(SpeicherDatei, QuellDatei)
    22. End Sub
    Gruß Markus
    Nun hat er eben zwei Bilder richtig bearbeitet und nun setzt er Kommentar und Markierung auf Nothing.
    Verstehe es nicht. Also o.a. Code nicht verwenden.

    Edit:
    Habe mir mal genauer die Jpg-Dateien angschaut.
    Es gibt welche, die haben nur zwei ID's 20624 und 20625. Die habe ich hier exiv2.org/tags.html nicht gefunden.
    Andere wiederum haben eine Liste von ID's, da fehlen Kommentar (40092) und Markierung (40094).
    Gibt es die Möglichkeit die fehlenden ID's in der Datei nachträglich zu erstellen?
    Gruß Markus

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Westerwälder“ ()

    Edit2:

    Bestimmte ID's kann man wohl nachträglich erstellen:

    VB.NET-Quellcode

    1. Using Jpg As Image = Image.FromFile(QuellDatei)
    2. Dim Info As PropertyItem = Nothing
    3. For Each Info In Jpg.PropertyItems
    4. Propertylist.Add(Info)
    5. If Info.Id = 40092 Then 'Kommentar
    6. P40092 = True
    7. Info.Value = System.Text.Encoding.Unicode.GetBytes(Kommentar)
    8. Info.Len = Info.Value.Length
    9. End If
    10. If Info.Id = 40094 Then ' Markierung
    11. P40094 = True
    12. Info.Value = System.Text.Encoding.Unicode.GetBytes(Markierung)
    13. Info.Len = Info.Value.Length
    14. End If
    15. If Info.Id = 37510 Then
    16. P37510 = True
    17. Info.Value = System.Text.Encoding.Unicode.GetBytes(Kommentar)
    18. Info.Len = Info.Value.Length
    19. End If
    20. Jpg.SetPropertyItem(Info)
    21. Datenzeile = Me.Tab_Meta.NewRow
    22. Datenzeile("ID") = Info.Id
    23. Datenzeile("Wert") = Info.Value.ToArray
    24. Datenzeile("Inhalt") = System.Text.Encoding.Unicode.GetString(Info.Value, 0, Info.Len - 1)
    25. Me.Tab_Meta.Rows.Add(Datenzeile)
    26. Next
    27. If Not P37510 Then
    28. Info.Id = 37510
    29. Info.Value = System.Text.Encoding.Unicode.GetBytes(Kommentar)
    30. Info.Len = Info.Value.Length
    31. Jpg.SetPropertyItem(Info)
    32. End If
    33. 'If Not P40092 Then
    34. ' Info.Id = 400094
    35. ' Info.Value = System.Text.Encoding.Unicode.GetBytes(Markierung)
    36. ' Info.Len = Info.Value.Length
    37. ' Jpg.SetPropertyItem(Info)
    38. 'End If


    Nur ob das jetzt wirklich so gut ist.
    Gruß Markus
    @Westerwälder Poste mal so viel Code, dass C&P davon keuine Fehler liefert.
    Teste dies an einer leeren Prozedur einer leeren Klasse.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Habe dafür eine Klasse erstellt

    Spoiler anzeigen

    VB.NET-Quellcode

    1. Public Sub Korrektur(ByVal Datei As String, ByVal Markierung As String, ByVal Kommentar As String)
    2. Me.QuellDatei = Pfade.Foto.Pfad & Datei
    3. Me.SpeicherDatei = Pfade.Foto.Pfad & "Metakorrektur.jpg"
    4. If Markierung = Nothing Then Markierung = Programm.Copyright_Kurz
    5. If Kommentar = Nothing Then Kommentar = "Keine Angabe"
    6. 'Me.Tab_Meta.Rows.Clear()
    7. 'Dim Datenzeile As DataRow = Nothing
    8. If Not IO.File.Exists(QuellDatei) Then Exit Sub
    9. If IO.File.Exists(SpeicherDatei) Then IO.File.Delete(SpeicherDatei)
    10. Dim P40092 As Boolean = False
    11. Dim P40094 As Boolean = False
    12. Dim P37510 As Boolean = False
    13. Dim Jpg As Image = Image.FromFile(QuellDatei)
    14. Using Jpg
    15. Dim Info As PropertyItem = Nothing
    16. For Each Info In Jpg.PropertyItems
    17. If Info.Id = 40092 Then 'Kommentar
    18. P40092 = True
    19. Info.Value = System.Text.Encoding.Unicode.GetBytes(Kommentar)
    20. Info.Len = Info.Value.Length
    21. End If
    22. If Info.Id = 40094 Then ' Markierung
    23. P40094 = True
    24. Info.Value = System.Text.Encoding.Unicode.GetBytes(Markierung)
    25. Info.Len = Info.Value.Length
    26. End If
    27. If Info.Id = 37510 Then 'User Kommentar
    28. P37510 = True
    29. Info.Value = System.Text.Encoding.Unicode.GetBytes(Kommentar)
    30. Info.Len = Info.Value.Length
    31. End If
    32. Jpg.SetPropertyItem(Info)
    33. ''Testzwecke
    34. 'Datenzeile = Me.Tab_Meta.NewRow
    35. 'Datenzeile("ID") = Info.Id
    36. 'Datenzeile("Wert") = Info.Value.ToArray
    37. 'Datenzeile("Inhalt") = System.Text.Encoding.Unicode.GetString(Info.Value, 0, Info.Len - 1)
    38. 'Me.Tab_Meta.Rows.Add(Datenzeile)
    39. Next
    40. If Not P37510 Then 'User-Kommentar
    41. Info.Id = 37510
    42. Info.Value = System.Text.Encoding.Unicode.GetBytes(Kommentar)
    43. Info.Len = Info.Value.Length
    44. Jpg.SetPropertyItem(Info)
    45. End If
    46. If Not P40094 Then 'Markierung
    47. Info.Id = 400094
    48. Info.Value = System.Text.Encoding.Unicode.GetBytes(Markierung)
    49. Info.Len = Info.Value.Length
    50. Jpg.SetPropertyItem(Info)
    51. End If
    52. End Using
    53. Jpg.Save(SpeicherDatei, Imaging.ImageFormat.Jpeg)
    54. Threading.Thread.Sleep(1000)
    55. IO.File.Delete(QuellDatei)
    56. Rename(SpeicherDatei, QuellDatei)
    57. End Sub



    Gruß Markus
    @Westerwälder

    RodFromGermany schrieb:

    Teste dies an einer leeren Prozedur einer leeren Klasse.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Hoffe ich habe nun alles raus

    Spoiler anzeigen

    VB.NET-Quellcode

    1. Public Sub Korrektur(ByVal Datei As String, ByVal Markierung As String, ByVal Kommentar As String)
    2. Dim Quelldatei As String = Nothing
    3. Dim Speicherdatei As String = Nothing
    4. 'Quelldatei = Pfade.Foto.Pfad & Datei
    5. 'Speicherdatei = Pfade.Foto.Pfad & "Metakorrektur.jpg"
    6. Quelldatei = "C:\MBSOFT\DATA\Foto\" & Datei ' zBsp. 1000098.jpg
    7. Speicherdatei = "C:\MBSOFT\DATA\Foto\Metakorrektur.jpg"
    8. If Markierung = Nothing Then Markierung = "Irgendwas" ' Programm.Copyright_Kurz
    9. If Kommentar = Nothing Then Kommentar = "Keine Angabe"
    10. 'Me.Tab_Meta.Rows.Clear()
    11. 'Dim Datenzeile As DataRow = Nothing
    12. If Not IO.File.Exists(QuellDatei) Then Exit Sub
    13. If IO.File.Exists(SpeicherDatei) Then IO.File.Delete(SpeicherDatei)
    14. Dim P40092 As Boolean = False
    15. Dim P40094 As Boolean = False
    16. Dim P37510 As Boolean = False
    17. Dim Jpg As Image = Image.FromFile(QuellDatei)
    18. Using Jpg
    19. Dim Info As PropertyItem = Nothing
    20. For Each Info In Jpg.PropertyItems
    21. If Info.Id = 40092 Then 'Kommentar
    22. P40092 = True
    23. Info.Value = System.Text.Encoding.Unicode.GetBytes(Kommentar)
    24. Info.Len = Info.Value.Length
    25. End If
    26. If Info.Id = 40094 Then ' Markierung
    27. P40094 = True
    28. Info.Value = System.Text.Encoding.Unicode.GetBytes(Markierung)
    29. Info.Len = Info.Value.Length
    30. End If
    31. If Info.Id = 37510 Then 'User Kommentar
    32. P37510 = True
    33. Info.Value = System.Text.Encoding.Unicode.GetBytes(Kommentar)
    34. Info.Len = Info.Value.Length
    35. End If
    36. Jpg.SetPropertyItem(Info)
    37. ''Testzwecke
    38. 'Datenzeile = Me.Tab_Meta.NewRow
    39. 'Datenzeile("ID") = Info.Id
    40. 'Datenzeile("Wert") = Info.Value.ToArray
    41. 'Datenzeile("Inhalt") = System.Text.Encoding.Unicode.GetString(Info.Value, 0, Info.Len - 1)
    42. 'Me.Tab_Meta.Rows.Add(Datenzeile)
    43. Next
    44. Try
    45. If Not P37510 Then 'User-Kommentar
    46. Info.Id = 37510
    47. Info.Value = System.Text.Encoding.Unicode.GetBytes(Kommentar)
    48. Info.Len = Info.Value.Length
    49. Jpg.SetPropertyItem(Info)
    50. End If
    51. If Not P40094 Then 'Markierung
    52. Info.Id = 400094
    53. Info.Value = System.Text.Encoding.Unicode.GetBytes(Markierung)
    54. Info.Len = Info.Value.Length
    55. Jpg.SetPropertyItem(Info)
    56. End If
    57. Catch ex As Exception
    58. End Try
    59. End Using
    60. Jpg.Save(SpeicherDatei, Imaging.ImageFormat.Jpeg)
    61. Threading.Thread.Sleep(1000)
    62. IO.File.Delete(QuellDatei)
    63. Rename(SpeicherDatei, QuellDatei)
    64. End Sub

    Gruß Markus
    @Westerwälder Also:
    Die Dinger kommen auf der Platte nicht an.
    Spoiler anzeigen

    VB.NET-Quellcode

    1. Public Sub Korrektur(ByVal Datei As String, ByVal Markierung As String, ByVal Kommentar As String)
    2. Dim Quelldatei = "C:\Temp\Foto\" & Datei ' zBsp. 1000098.jpg
    3. Dim dateiTemp = "C:\Temp\Foto\Metakorrektur.jpg"
    4. If String.IsNullOrEmpty(Markierung) Then Markierung = "Irgendwas" ' Programm.Copyright_Kurz
    5. If String.IsNullOrEmpty(Kommentar) Then Kommentar = "Keine Angabe"
    6. 'Me.Tab_Meta.Rows.Clear()
    7. 'Dim Datenzeile As DataRow = Nothing
    8. If Not IO.File.Exists(QuellDatei) Then Exit Sub
    9. If IO.File.Exists(dateiTemp) Then IO.File.Delete(dateiTemp)
    10. Dim P40092 As Boolean = False
    11. Dim P40094 As Boolean = False
    12. Dim P37510 As Boolean = False
    13. Using Jpg = Image.FromFile(Quelldatei)
    14. 'Dim Info As PropertyItem = Nothing
    15. For Each Info In Jpg.PropertyItems
    16. If Info.Id = 40092 Then 'Kommentar
    17. P40092 = True
    18. Info.Value = System.Text.Encoding.Unicode.GetBytes(Kommentar)
    19. Info.Len = Info.Value.Length
    20. ElseIf Info.Id = 40094 Then ' Markierung
    21. P40094 = True
    22. Info.Value = System.Text.Encoding.Unicode.GetBytes(Markierung)
    23. Info.Len = Info.Value.Length
    24. ElseIf Info.Id = 37510 Then 'User Kommentar
    25. P37510 = True
    26. Info.Value = System.Text.Encoding.Unicode.GetBytes(Kommentar)
    27. Info.Len = Info.Value.Length
    28. End If
    29. Jpg.SetPropertyItem(Info)
    30. ''Testzwecke
    31. 'Datenzeile = Me.Tab_Meta.NewRow
    32. 'Datenzeile("ID") = Info.Id
    33. 'Datenzeile("Wert") = Info.Value.ToArray
    34. 'Datenzeile("Inhalt") = System.Text.Encoding.Unicode.GetString(Info.Value, 0, Info.Len - 1)
    35. 'Me.Tab_Meta.Rows.Add(Datenzeile)
    36. Next
    37. MessageBox.Show(Jpg.PropertyItems.Count.ToString)
    38. Try
    39. If Not P37510 Then 'User-Kommentar
    40. Dim bmp = New Bitmap("C:\Temp\Foto\ImageWithExifData.jpg")
    41. Dim Info = bmp.PropertyItems(0)
    42. Info.Id = 37510
    43. Info.Value = System.Text.Encoding.Unicode.GetBytes(Kommentar)
    44. Info.Len = Info.Value.Length
    45. Jpg.SetPropertyItem(Info)
    46. MessageBox.Show(Jpg.PropertyItems.Count.ToString)
    47. End If
    48. If Not P40094 Then 'Markierung
    49. Dim bmp = New Bitmap("C:\Temp\Foto\ImageWithExifData.jpg")
    50. Dim Info = bmp.PropertyItems(0)
    51. Info.Id = 400094
    52. Info.Value = System.Text.Encoding.Unicode.GetBytes(Markierung)
    53. Info.Len = Info.Value.Length
    54. Jpg.SetPropertyItem(Info)
    55. MessageBox.Show(Jpg.PropertyItems.Count.ToString)
    56. End If
    57. Catch ex As Exception
    58. End Try
    59. Jpg.Save(dateiTemp, Imaging.ImageFormat.Jpeg)
    60. 'MessageBox.Show(Jpg.PropertyItems.Count.ToString)
    61. End Using
    62. Threading.Thread.Sleep(1000)
    63. IO.File.Delete(Quelldatei)
    64. Using bmp = New Bitmap(dateiTemp)
    65. MessageBox.Show(bmp.PropertyItems.Count.ToString)
    66. End Using
    67. Rename(dateiTemp, Quelldatei)
    68. End Sub
    Ich denke mal, die System.Drawing.Bitmap-Klasse ist da etwas schmal auf der Brust.
    Probierma, ob die WPF-Formate (kannst Du in WinForm einfach nutzen) das können:

    VB.NET-Quellcode

    1. using System.Windows;
    2. using System.Windows.Media;
    3. using System.Windows.Media.Imaging;
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Guten Morgen,
    bin nun an der Umstellung.
    Finde die Zuweisung zur Datei nicht.

    ' Create source.
    Dim bi As New BitmapImage()
    ' BitmapImage.UriSource must be in a BeginInit/EndInit block.
    bi.BeginInit()
    bi.UriSource = New Uri( "/sampleImages/cherries_larger.jpg" , UriKind.RelativeOrAbsolute)
    bi.EndInit()

    Also für Using Jpg = Windows.Media.Imaging.BitmapImage.UriSourceProperty(Me.QuellDatei)
    Gruß Markus
    @Westerwälder Missverständnis.
    Du musst doch nicht die Datei lesen, sondern schreiben.
    Hier mal ein Beispiel für das Schreiben einer PNG:
    Spoiler anzeigen

    C#-Quellcode

    1. /// <summary>
    2. /// Saves the image information as a Png image
    3. /// </summary>
    4. /// <param name="filename">full path to save the image</param>
    5. /// <param name="pixels">pixel information of the image</param>
    6. /// <param name="palette">palette information of the image</param>
    7. /// <param name="info">additional image information</param>
    8. /// <returns>success of saving</returns>
    9. public static bool SavePng(string filename, Array pixels, BitmapPalette palette, PictureInfoWpf info)
    10. {
    11. PixelFormat fmt = (info.PictureTypeWpf == PictureWpf.PictureTypeWpf.Grey8)
    12. ? PixelFormats.Gray8
    13. : PixelFormats.Gray16;
    14. int stride = (info.PictureTypeWpf == PictureWpf.PictureTypeWpf.Grey8) ? info.Width : info.Width * 2;
    15. BitmapSource image = BitmapSource.Create(
    16. info.Width,
    17. info.Height,
    18. 96,
    19. 96,
    20. fmt,
    21. palette, // BitmapPalettes.Gray16,
    22. pixels,
    23. stride);
    24. // Image has to be converted to ARGB Format
    25. FormatConvertedBitmap newImage = new FormatConvertedBitmap(image, PixelFormats.Rgb24, null, 0.0);
    26. using (FileStream stream = new FileStream(filename, FileMode.Create))
    27. {
    28. PngBitmapEncoder encoder = new PngBitmapEncoder();
    29. encoder.Frames.Add(BitmapFrame.Create(newImage));
    30. encoder.Save(stream);
    31. }
    32. return true;
    33. }
    Für JPG nimmst Du JpgBitmapEncoder oder so.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Kann es sein das Du zum Lesen einen JpegBitmapDecoder meinst?

    Edit:
    Irgendwas stimmt nicht nach dem Hinzufügen der o.a. Verweise.
    Habe nun 15 Fehler im Programm welche alle mit dem Imports ADOX zusammen hängen.
    Trotz dieser Fehler startet das Programm. Kenne ich so nicht.
    Gruß Markus

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „Westerwälder“ ()

    Westerwälder schrieb:

    Kann es sein das Du zum Lesen einen JpegBitmapDecoder meinst?
    Nein.
    Ich meine zum Schreiben einen JpegBitmapEncoder.
    Startet das letzte erfolgreiche Compile?
    Häng ggf. mal das Projekt ohne Binaries als ZIP an.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Guten Morgen,

    habe erstmal das Projekt zurückgesetzt.
    Das Seltsame war, dass es mit den 15 Fehlern gestartet hat. Werde im Laufe des Tages, ein neues Projekt für die Änderung der Metadaten erstellen und es hochladen.
    Ist es vielleicht nicht besser, die ganze Sache in einem VB-Script oder einer Batch zu realisieren? Meine ich hätte solch eine Lösung im Netz gesehen.
    Gruß Markus

    Westerwälder schrieb:

    Ist es vielleicht nicht besser, die ganze Sache in einem VB-Script oder einer Batch zu realisieren?
    Das musst Du entscheiden.
    Ich würde schon lieber eine .NET-Lösung haben wollen.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!