Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Empfohlene Antworten

Veröffentlicht

Hallo Zusammen,

bevor ihr was sagt. Habe eure Such-Funktion genutzt und habe auch etwas passendes gefunden:

http://forum.fachinformatiker.de/showthread.php?t=39377&highlight=Ordner+kopieren

Habe versucht dieses Bsp. auch anzuwenden, jedoch habe ich noch Probleme.

Ich möchte gern einen Ordner kopieren und ihn dann Umbennenen um eine Datei einzufügen.

pathF += "\0\0";

path += "\0\0";


SHFILEOPSTRUCT FileStruct;

FileStruct.hwnd = NULL;

FileStruct.wFunc = FO_COPY;

FileStruct.pFrom = pathF;

FileStruct.pTo = path;

FileStruct.fFlags = FOF_MULTIDESTFILES | FOF_NOCONFIRMATION

                         | FOF_NOCONFIRMMKDIR;

FileStruct.lpszProgressTitle = "Kopiere Ordner...";

SHFileOperation(&FileStruct);

Wenn ich es so ausführe, kommt bei mir die Meldung, dass die Datei nicht kpoiert werden kann, da die Quelldatei oder der Quelldatenträger nicht gelesen werden kann.

Die Ordner bzw. Dateien sind nicht schreibgeschützt. Habe es auch versucht indem einen Testordner erstellt hab mti ein paar (leeren) Dateien. Da funktioniert es auch nicht.

Was muss ich noch berücksichtigen, was ich übersehen habe?

Danke für jede Hilfe!

Gruß Kitty

Also bei mir klappt es so ohne Probleme:


#include <stdio.h>
#include <windows.h>


int main()
{
SHFILEOPSTRUCT Op;

Op.hwnd=NULL;
Op.wFunc=FO_COPY;
Op.pFrom="C:\\Aida32\0\0";
Op.pTo="D:\\test\\\0\0";
Op.fFlags=FOF_MULTIDESTFILES | FOF_NOCONFIRMATION | FOF_NOCONFIRMMKDIR;
Op.lpszProgressTitle="Kopiere CD...";
SHFileOperation(&Op);
return 0;
}
[/PHP]

Hast du mal überprüft ob die Pfade die du übergibst wirklich stimmen?

Also bei mir klappt es so ohne Probleme:

Hast du mal überprüft ob die Pfade die du übergibst wirklich stimmen?

irgendwie klappt es bei dir immer und bei mir nicht. Habe die Pfade überprüft. Alles stimmt. Habe die Pfade sogar aus Adressenfeld kopiert und dann funktioniert es auf einmal:


SHFILEOPSTRUCT FileStruct;

FileStruct.hwnd = NULL;
FileStruct.wFunc = FO_COPY;
FileStruct.pFrom = "C:\\Software\\Projekt Kalibrierung\\Scanner\\Test\0\0";
FileStruct.pTo = "C:\\Software\\Projekt Kalibrierung\\Scanner\\LLS00050123\\\0\0";
FileStruct.fFlags = FOF_MULTIDESTFILES | FOF_NOCONFIRMATION | FOF_NOCONFIRMMKDIR;
FileStruct.lpszProgressTitle = "Erstelle Ordner...";
SHFileOperation(&FileStruct);[/PHP]

warum auf einmal? :confused:

der einzige unterschied ist nur, dass pFrom und pTo keine CString-Variable übergeben bekommen, sondern gleich den Text. path und pathF sind oben bei mir CString-Variablen, denen ich den Pfad so wie hier übergeben habe, also:

path = "C:\\Software..." (usw.)

wie kann ich denn CString hier übergeben? In dem Thread, wessen link ich oben eingefügt habe, klappte es doch auch mit CString? :confused:

Danke + Gruß Kitty

Hast du Klotzkopps Rat berücksichtigt?

:eek den hab ich total übersehen. moment, werde das gleich mal versuchen!!

sorry!! :(

Das ist gleichbedeutend mit pathF += "";, tut also nichts.

Eine doppelte Nullterminierung kannst du mit den üblichen Stringformatierungsfunktionen erreichen, indem du am Ende ein %c-Feld mit dem Wert 0 angibst.

meintest du das so?

path.Format("%s\0",path);

so funktioniert es nicht.

auch wenn ich das "\" weglasse, geht es nicht. Oder hab ich dich falsch verstanden?

meintest du das so?
Nein, das bringt auch nichts. Zusätzliche Nullzeichen am Ende eines Literals funktionieren nur, wenn man dieses Literal direkt einem Zeiger auf char zuweist. Weder CString noch irgendeine Stringfunktion kommt mit so etwas zurecht.

Ich meinte etwas in der Art:

CString temp = path;
path.Format("%s%c", temp, 0);[/CODE]

@G.T.:

Damit hast du eine dreifache Nullterminierung. Das ist Overkill ;)

Außerdem: "The call will fail if the string object itself is offered as a parameter to Format."

vielen Dank euch beiden für eure Tipps.

Hoffe, ich kann euch auch irgendwann mal bei irgendwas so helfen :beagolisc ;)

jetzt funktioniert alles und ich hoffe, dass ich nicht bald wieder ein Problem haben werde :cool:

Lg Kitty

Erstelle ein Konto oder melde dich an, um einen Kommentar zu schreiben.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.