<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[Datei umbenennen: Name zu lang?]]></title><description><![CDATA[<p>Hiho,</p>
<p>ich möchte eine Datei in Windows über rename() umnennen.<br />
Dabei erhalte ich jedoch den Fehler zurück, dass der Dateiname<br />
zu lang ist. Erzeuge ich die Datei mit dem entsprechenden Namen<br />
per Hand auf dem Desktop gibt es dabei jedoch kein Problem.</p>
<p>Gibt es Alternativen zum umbennen von Dateien? Komisch ist auch,<br />
dass es an einem PC aus dem Testordner von 100 Dateien nur 2 Fehler<br />
gibt und auf dem nächsten PC (gleiches BS -&gt; Win XP prof.) nur so<br />
die Fehler wegen dem zu langen Dateinamen hagelt.</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/164220/datei-umbenennen-name-zu-lang</link><generator>RSS for Node</generator><lastBuildDate>Fri, 17 Jul 2026 12:34:16 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/164220.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 06 Nov 2006 10:41:25 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Datei umbenennen: Name zu lang? on Mon, 06 Nov 2006 10:41:25 GMT]]></title><description><![CDATA[<p>Hiho,</p>
<p>ich möchte eine Datei in Windows über rename() umnennen.<br />
Dabei erhalte ich jedoch den Fehler zurück, dass der Dateiname<br />
zu lang ist. Erzeuge ich die Datei mit dem entsprechenden Namen<br />
per Hand auf dem Desktop gibt es dabei jedoch kein Problem.</p>
<p>Gibt es Alternativen zum umbennen von Dateien? Komisch ist auch,<br />
dass es an einem PC aus dem Testordner von 100 Dateien nur 2 Fehler<br />
gibt und auf dem nächsten PC (gleiches BS -&gt; Win XP prof.) nur so<br />
die Fehler wegen dem zu langen Dateinamen hagelt.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1169481</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1169481</guid><dc:creator><![CDATA[Fruggle]]></dc:creator><pubDate>Mon, 06 Nov 2006 10:41:25 GMT</pubDate></item><item><title><![CDATA[Reply to Datei umbenennen: Name zu lang? on Mon, 06 Nov 2006 11:26:51 GMT]]></title><description><![CDATA[<p>Benutz lieber <a href="http://windowssdk.msdn.microsoft.com/en-us/library/ms687113.aspx" rel="nofollow">MoveFile(Ex)</a></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1169511</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1169511</guid><dc:creator><![CDATA[Airdamn]]></dc:creator><pubDate>Mon, 06 Nov 2006 11:26:51 GMT</pubDate></item><item><title><![CDATA[Reply to Datei umbenennen: Name zu lang? on Mon, 06 Nov 2006 11:31:57 GMT]]></title><description><![CDATA[<p>Ich habe es jetzt nochmal mit SHFILEOPSTRUCT und FO_RENAME versucht.<br />
Der Dateiname ist aber angeblich für die Aktion zu lang...hmm?</p>
<p>Warum kann man den Namen dann per Hand ändern?</p>
<pre><code class="language-cpp">CString strvon=&quot;C:\\ordnerx\\12345\\ein_langersehrlangertextmitvielen-lustigen-zeichendrindernichtumbenanntwerdenwillwarumauchimmernicht-ichbitteumhilfe-fruggle.doc&quot;;
	CString to=&quot;C:\\ordnerx\\12345\\jetztmalmitRautezeichen-ein_langer##sehrlangertextmitvielen-lustigen-zeichendrindernichtumbenanntwerdenwillwarumauchimmernicht-ichbitteumhilfe-fruggle.doc&quot;;

SHFILEOPSTRUCT foCopy; 

foCopy.hwnd                  = NULL; 
foCopy.wFunc                 = FO_RENAME; 
foCopy.pFrom                 = strvon; 
foCopy.pTo                   =to; 
foCopy.fFlags                = FOF_NOCONFIRMATION
foCopy.fAnyOperationsAborted = FALSE; 
foCopy.hNameMappings         = NULL; 
foCopy.lpszProgressTitle     = NULL;
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1169512</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1169512</guid><dc:creator><![CDATA[Fruggle]]></dc:creator><pubDate>Mon, 06 Nov 2006 11:31:57 GMT</pubDate></item><item><title><![CDATA[Reply to Datei umbenennen: Name zu lang? on Mon, 06 Nov 2006 12:06:20 GMT]]></title><description><![CDATA[<p>Du solltest die Regeln für das benennen und die Länge von Namen beachten:<br />
<a href="http://msdn.microsoft.com/library/en-us/fileio/fs/naming_a_file.asp" rel="nofollow">http://msdn.microsoft.com/library/en-us/fileio/fs/naming_a_file.asp</a></p>
<p>Die max. Länge liegt bei 259 Zeichen (plus NUL).</p>
<p>Wenn Du längere Namen angeben willst, dann musst Du die Unicode-Variante verwenden und den &quot;\?\&quot; prefix voranstellen.</p>
<p>Siehe den obigen Link.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1169530</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1169530</guid><dc:creator><![CDATA[Jochen Kalmbach]]></dc:creator><pubDate>Mon, 06 Nov 2006 12:06:20 GMT</pubDate></item><item><title><![CDATA[Reply to Datei umbenennen: Name zu lang? on Mon, 06 Nov 2006 12:25:28 GMT]]></title><description><![CDATA[<p>Jochen Kalmbach schrieb:</p>
<blockquote>
<p>Wenn Du längere Namen angeben willst, dann musst Du die Unicode-Variante verwenden und den &quot;\?\&quot; prefix voranstellen.</p>
</blockquote>
<p>Dann muss einema aber auch klar sein, dass alle Shell Funktionen tabu sind und man dann nur noch die Win32 API verwenden kann!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1169545</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1169545</guid><dc:creator><![CDATA[Martin Richter]]></dc:creator><pubDate>Mon, 06 Nov 2006 12:25:28 GMT</pubDate></item><item><title><![CDATA[Reply to Datei umbenennen: Name zu lang? on Mon, 06 Nov 2006 12:45:04 GMT]]></title><description><![CDATA[<p>ich wuerde &quot;_trename()&quot; versuchen</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1169564</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1169564</guid><dc:creator><![CDATA[EXDW]]></dc:creator><pubDate>Mon, 06 Nov 2006 12:45:04 GMT</pubDate></item><item><title><![CDATA[Reply to Datei umbenennen: Name zu lang? on Mon, 06 Nov 2006 13:10:05 GMT]]></title><description><![CDATA[<p>Martin Richter schrieb:</p>
<blockquote>
<p>Jochen Kalmbach schrieb:</p>
<blockquote>
<p>Wenn Du längere Namen angeben willst, dann musst Du die Unicode-Variante verwenden und den &quot;\?\&quot; prefix voranstellen.</p>
</blockquote>
<p>Dann muss einema aber auch klar sein, dass alle Shell Funktionen tabu sind und man dann nur noch die Win32 API verwenden kann!</p>
</blockquote>
<p>Was meinst du mit Shell Funktionen sind tabu?<br />
Bis jetzt ist mir auch noch nicht klar was rename() zu _trename() nun<br />
genau unterscheided...Unicode-Variante?</p>
<p>Und dann noch eine ganz peinliche Frage hinterher. Ich lasse mir von<br />
GetLastError den Rückgabewert anzeigen. Nun gibt es dafür ja eine entsprechende<br />
Umsetzung z.B. 5 bedeutet &quot;kein Zugriff auf Datei&quot;.</p>
<p>Wenn ich nun nachstehenden Code nehme um mir das letzte Ergebnis von<br />
GetLastError auswerten zu lassen, bezieht sich das Ergebnis nur auf<br />
meine Anwendung? Oder ermittel ich einfach nur den letzten Fehler<br />
den sich Windows gemerkt hat (egal welcher Anwendung)?</p>
<pre><code class="language-cpp">LPVOID lpMsgBuf;
if (!FormatMessage( 
    FORMAT_MESSAGE_ALLOCATE_BUFFER | 
    FORMAT_MESSAGE_FROM_SYSTEM | 
    FORMAT_MESSAGE_IGNORE_INSERTS,
    NULL,
    GetLastError(),
    MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), // Default language
    (LPTSTR) &amp;lpMsgBuf,
    0,
    NULL ))
{
   return;
}

MessageBox( (LPCTSTR)lpMsgBuf, &quot;Error&quot;, MB_OK | MB_ICONINFORMATION );
LocalFree( lpMsgBuf );
</code></pre>
<p>Danke für eure freundliche Unterstützung.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1169599</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1169599</guid><dc:creator><![CDATA[Fruggle]]></dc:creator><pubDate>Mon, 06 Nov 2006 13:10:05 GMT</pubDate></item><item><title><![CDATA[Reply to Datei umbenennen: Name zu lang? on Mon, 06 Nov 2006 13:38:05 GMT]]></title><description><![CDATA[<p>Fruggle schrieb:</p>
<blockquote>
<p>Wenn ich nun nachstehenden Code nehme um mir das letzte Ergebnis von<br />
GetLastError auswerten zu lassen, bezieht sich das Ergebnis nur auf<br />
meine Anwendung? Oder ermittel ich einfach nur den letzten Fehler<br />
den sich Windows gemerkt hat (egal welcher Anwendung)?</p>
</blockquote>
<p>Was steht denn in der Hilfe diesbezüglich?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1169639</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1169639</guid><dc:creator><![CDATA[Gast Luckie]]></dc:creator><pubDate>Mon, 06 Nov 2006 13:38:05 GMT</pubDate></item><item><title><![CDATA[Reply to Datei umbenennen: Name zu lang? on Mon, 06 Nov 2006 14:59:22 GMT]]></title><description><![CDATA[<p>So, MoveFileEx _trename und rename habe ich jetzt durch. Mit dem Ergebnis, dass<br />
bei extrem langen Dateipfaden oder Dateinamen nicht umbenannt wird.</p>
<p>Mit dem Prefix &quot;\?\&quot; genau das gleiche Ergebnis...</p>
<p>Jochen Kalmbach, hast du evtl. mal ein Beispiel für den von dir beschriebenen<br />
Lösungsweg? Ich bin jetzt mit einem Mix aus MFC und WinAPI zugange.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1169721</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1169721</guid><dc:creator><![CDATA[Fruggle]]></dc:creator><pubDate>Mon, 06 Nov 2006 14:59:22 GMT</pubDate></item><item><title><![CDATA[Reply to Datei umbenennen: Name zu lang? on Mon, 06 Nov 2006 15:48:35 GMT]]></title><description><![CDATA[<p>Also CRT und Shell Funktionen kannst Du Haken! Die gehen alle nur bis MAX_PATH!<br />
<a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/20441">@Mr</a> Evil: Damit geht _trename auch nicht!</p>
<p>Wichtig: Du hast die Infos nicht ganz gelesen!<br />
Du musst die Unicode Variante explizit verwenden: MoveFileExW bzw. MoveFileW!<br />
Sonst wird eben wieder eine Ansi/Unicode Konvertierung gemacht und diese ist beschränkt auf MAX_PATH!</p>
<p>Win32 API pur mit Unicode ist der einzige Weg!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1169775</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1169775</guid><dc:creator><![CDATA[Martin Richter]]></dc:creator><pubDate>Mon, 06 Nov 2006 15:48:35 GMT</pubDate></item><item><title><![CDATA[Reply to Datei umbenennen: Name zu lang? on Mon, 06 Nov 2006 17:14:08 GMT]]></title><description><![CDATA[<p>Aber sehe ich das richtig, dass man dann besser noch prüfen sollte, ob<br />
der neue Dateiname nicht evtl. zu lang wird? Dann hat man doch genau<br />
das gleiche Problem. GetLastError liefert dann ebenfalls Code 3 zurück<br />
-&gt;ERROR_PATH_NOT_FOUND</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1169873</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1169873</guid><dc:creator><![CDATA[Aycee]]></dc:creator><pubDate>Mon, 06 Nov 2006 17:14:08 GMT</pubDate></item><item><title><![CDATA[Reply to Datei umbenennen: Name zu lang? on Mon, 06 Nov 2006 18:15:59 GMT]]></title><description><![CDATA[<p>Du *musst* die Unicode-Version der APIs verwenden!<br />
Also &quot;MoveFile<strong>W</strong>&quot;!<br />
Siehe auch Hilfe zu &quot;MoveFile&quot;...</p>
<pre><code class="language-cpp">CStringW strvon=&quot;\\\\?\\C:\\ordnerx\\12345\\ein_langersehrlangertextmitmax255Zeichen&quot;;
CStringW to=&quot;\\\\?\\C:\\ordnerx\\12345\\nochmalseinlangerTextMitMax255Zeichen&quot;;
MoveFileW(from, to);
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1169913</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1169913</guid><dc:creator><![CDATA[Jochen Kalmbach]]></dc:creator><pubDate>Mon, 06 Nov 2006 18:15:59 GMT</pubDate></item><item><title><![CDATA[Reply to Datei umbenennen: Name zu lang? on Mon, 06 Nov 2006 22:13:12 GMT]]></title><description><![CDATA[<p>Ich hatte gedacht ich hätte mich klar ausgedrückt!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1170103</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1170103</guid><dc:creator><![CDATA[Martin Richter]]></dc:creator><pubDate>Mon, 06 Nov 2006 22:13:12 GMT</pubDate></item><item><title><![CDATA[Reply to Datei umbenennen: Name zu lang? on Tue, 07 Nov 2006 07:32:35 GMT]]></title><description><![CDATA[<p>Der Threadersteller meinte ja das er die Dateien per Explorer selbst erstellen kann. Und der Explorer benutzt ja die Shell Funktionen. Verwundert mich irgendwie.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1170178</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1170178</guid><dc:creator><![CDATA[......]]></dc:creator><pubDate>Tue, 07 Nov 2006 07:32:35 GMT</pubDate></item><item><title><![CDATA[Reply to Datei umbenennen: Name zu lang? on Tue, 07 Nov 2006 08:13:11 GMT]]></title><description><![CDATA[<p>Mit \\\?\\ und MoveFileEx() geht es jetzt offenbar. Allerdings auch<br />
nur mit 210 Zeichen im Dateinamen + Dateiendung</p>
<p>Danke für eure Hilfe.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1170202</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1170202</guid><dc:creator><![CDATA[Fruggle]]></dc:creator><pubDate>Tue, 07 Nov 2006 08:13:11 GMT</pubDate></item><item><title><![CDATA[Reply to Datei umbenennen: Name zu lang? on Tue, 07 Nov 2006 08:21:02 GMT]]></title><description><![CDATA[<p>MAX_PATH ist im Platform SDK auf 260 festegelegt. Das ist das Limit für alle Shell-Funktionen! Aber das wurde ja schon geschrieben, also nur noch mal zur Erinnerung.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1170209</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1170209</guid><dc:creator><![CDATA[Martin Richter]]></dc:creator><pubDate>Tue, 07 Nov 2006 08:21:02 GMT</pubDate></item></channel></rss>