Permalänk
Medlem

c++ flytta filer?

Hur flyttar jag filer med c++?
jag håller just nu på att lära mig att öppna,skrivai o stänga filer
Men hur gör jag om jag tex ska göra en tutorial o vill göra det enkelt

Vill göra så att hosts filen i datorn flyttas till skriv bordet skriver in en speciel sak sen flyttar tillbaka den, det måste väll å, och hur?

Och sen, hur tar man bort filer?

Visa signatur

CPU : 6700K @ 4,7GHz GPU : 3090 Strix OC RAM : 16GB 3600MHz 15-15-15-35 SSD : Samsung 950 PRO 512GB NVME Bildskärm 1: Strix PG279Q 1440p@165Hz G-SYNC Bildskärm 2: QNIX Q2710 1440p@60Hz

Permalänk
Permalänk
Medlem

skulle någon kunna försöka göra en liten enkel kod som visar detta?
typ ett program som gör en mapp i C sen en text fil i mappen som heter test.txt och i den står det hej

skulle hjälpa enormt mycket

Visa signatur

CPU : 6700K @ 4,7GHz GPU : 3090 Strix OC RAM : 16GB 3600MHz 15-15-15-35 SSD : Samsung 950 PRO 512GB NVME Bildskärm 1: Strix PG279Q 1440p@165Hz G-SYNC Bildskärm 2: QNIX Q2710 1440p@60Hz

Permalänk
Medlem

Du är medveten om att det finns enkla kodexempel på sidorna jag länkade till, eller? Jag testade dem i VS2010 och de fungerar.

Permalänk
Medlem

men jag vill spara i en annan directory eller vad man ska säga
Om programmet ligger på skrivbordet eller i program mappen ska inte spela någon roll, filen ska ändå hamna i tex dokument, hoppas du fattar

Nått som skulle kunna se ut ungefär såhär

#include <iostream>
#include <fstream>
using namespace std;

int main () {
ofstream myfile;
myfile.open ("C:\Users\Boozfob\Documents\sample.txt");
myfile << "Writing this to the file :D\n";
myfile.close();
return 0;
}

Visa signatur

CPU : 6700K @ 4,7GHz GPU : 3090 Strix OC RAM : 16GB 3600MHz 15-15-15-35 SSD : Samsung 950 PRO 512GB NVME Bildskärm 1: Strix PG279Q 1440p@165Hz G-SYNC Bildskärm 2: QNIX Q2710 1440p@60Hz

Permalänk
Medlem

Så vad är problemet med rename()?

/* rename example */ #include <stdio.h> int main () { int result; char oldname[] ="oldname.txt"; char newname[] ="newname.txt"; result= rename( oldname , newname ); if ( result == 0 ) puts ( "File successfully renamed" ); else perror( "Error renaming file" ); return 0; }

Vill du flytta "A.txt" i C: till en D:\dir\ så ändrar du ovan till:

char oldname[] ="C:\\A.txt"; char newname[] ="D:\\dir\\A.txt";

Permalänk
Medlem

det vill ju inte funka :3

Visa signatur

CPU : 6700K @ 4,7GHz GPU : 3090 Strix OC RAM : 16GB 3600MHz 15-15-15-35 SSD : Samsung 950 PRO 512GB NVME Bildskärm 1: Strix PG279Q 1440p@165Hz G-SYNC Bildskärm 2: QNIX Q2710 1440p@60Hz

Permalänk
Medlem

Vad säger programmet? Har du rättighet att läsa från filen och att skriva dit du vill flytta den? T.ex. kan Windows säga ifrån om du försöker flytta filer direkt till C: (i alla fall om man inte är administratör).

Permalänk
Medlem
Skrivet av Boozfob:

skulle någon kunna försöka göra en liten enkel kod som visar detta?
typ ett program som gör en mapp i C sen en text fil i mappen som heter test.txt och i den står det hej

skulle hjälpa enormt mycket

Skrivet av Boozfob:

men jag vill spara i en annan directory eller vad man ska säga
Om programmet ligger på skrivbordet eller i program mappen ska inte spela någon roll, filen ska ändå hamna i tex dokument, hoppas du fattar

Nått som skulle kunna se ut ungefär såhär

#include <iostream>
#include <fstream>
using namespace std;

int main () {
ofstream myfile;
myfile.open ("C:\Users\Boozfob\Documents\sample.txt");
myfile << "Writing this to the file :D\n";
myfile.close();
return 0;
}

Det du ville göra är precis det du själv skriver...

#include <iostream> #include <fstream> using namespace std; int main () { ofstream myfile; myfile.open ("C:\ENMAPP\test.txt"); myfile << "hej\n"; myfile.close(); return 0; }

Permalänk
Medlem

Det där skriver väl bara en sträng till en fil? Om man vill flytta en fil skulle man då först behöva öppna originalfilen, skriva allt innehåll till en ny fil, och sedan ta bort originalfilen. Om jag fattat det rätt så länkar rename() bara om filens plats i filsystemet utan att skriva någon data (utöver metadatan i alla fall). Blir ju lite jobbigt om man vill flytta många och/eller stora filer.

Permalänk
Hedersmedlem
Skrivet av zypronix:

myfile.open ("C:\ENMAPP\test.txt");

Om man tycker att "\\" är jobbigt att skriva fungerar snedstreck:

myfile.open ("C:/ENMAPP/test.txt");

Permalänk
Medlem

men vafan :/
det vill inte funka :/
Har testat på 2 olika datorer :3

Visa signatur

CPU : 6700K @ 4,7GHz GPU : 3090 Strix OC RAM : 16GB 3600MHz 15-15-15-35 SSD : Samsung 950 PRO 512GB NVME Bildskärm 1: Strix PG279Q 1440p@165Hz G-SYNC Bildskärm 2: QNIX Q2710 1440p@60Hz

Permalänk
Medlem

Kanske är för jag använder dev-c++ btw?
skulle någon kunna länka det ni har (som detta funkar på)

Visa signatur

CPU : 6700K @ 4,7GHz GPU : 3090 Strix OC RAM : 16GB 3600MHz 15-15-15-35 SSD : Samsung 950 PRO 512GB NVME Bildskärm 1: Strix PG279Q 1440p@165Hz G-SYNC Bildskärm 2: QNIX Q2710 1440p@60Hz

Permalänk
Medlem

Dev-c++ är lite till åren, ja. Men vad är "detta"? Lite svårt att avgöra varför det inte fungerar när man inte vet vad det är som inte gör det.

Permalänk
Medlem

Inget händer när jag kör koden, inga errors eller nått, händer bara ingenting ;/

Visa signatur

CPU : 6700K @ 4,7GHz GPU : 3090 Strix OC RAM : 16GB 3600MHz 15-15-15-35 SSD : Samsung 950 PRO 512GB NVME Bildskärm 1: Strix PG279Q 1440p@165Hz G-SYNC Bildskärm 2: QNIX Q2710 1440p@60Hz

Permalänk
Medlem
Skrivet av Boozfob:

Inget händer när jag kör koden, inga errors eller nått, händer bara ingenting ;/

Jag antar att du kör följande kodstycke:

#include <iostream> #include <fstream> using namespace std; int main () { ofstream myfile; myfile.open ("C:\ENMAPP\test.txt"); myfile << "hej\n"; myfile.close(); system("Pause"); return 0; }

myfile.open("C:\ENMAPP\test.txt"); är fel, antingen måste man använda "/" eller "\\" eftersom "\" används som escape-tecken i kodsammanghang.

Koden gjorde ingenting för mig heller om jag inte ändrade till \\ eller /

Visa signatur

Lian Li 6070B / Asus P8P67 B3 / Intel Core i5 2500K @ 4.5GHz
Corsair Vengance 8GB 1600MHz / Asus GTX780 / Corsair TX650V2

Permalänk
Medlem
Skrivet av Doodle:

Jag antar att du kör följande kodstycke:

#include <iostream> #include <fstream> using namespace std; int main () { ofstream myfile; myfile.open ("C:\ENMAPP\test.txt"); myfile << "hej\n"; myfile.close(); system("Pause"); return 0; }

myfile.open("C:\ENMAPP\test.txt"); är fel, antingen måste man använda "/" eller "\\" eftersom "\" används som escape-tecken i kodsammanghang.

Koden gjorde ingenting för mig heller om jag inte ändrade till \\ eller /

ska det vara

myfile.open ("C:\\ENMAPP\test.txt");

det vill inte funka endå iaf :/

Visa signatur

CPU : 6700K @ 4,7GHz GPU : 3090 Strix OC RAM : 16GB 3600MHz 15-15-15-35 SSD : Samsung 950 PRO 512GB NVME Bildskärm 1: Strix PG279Q 1440p@165Hz G-SYNC Bildskärm 2: QNIX Q2710 1440p@60Hz

Permalänk
Medlem

"C:\\ENMAPP\\test.txt"

Permalänk
Medlem

funkar inte endå
laddar ner visual studio nu

Visa signatur

CPU : 6700K @ 4,7GHz GPU : 3090 Strix OC RAM : 16GB 3600MHz 15-15-15-35 SSD : Samsung 950 PRO 512GB NVME Bildskärm 1: Strix PG279Q 1440p@165Hz G-SYNC Bildskärm 2: QNIX Q2710 1440p@60Hz

Permalänk
Medlem

Jag vet inte ens vad du försöker göra.

Permalänk
Medlem

Vill använda fsstream men till filer som inte ligger i samma mapp :#
Vill ju inte funka :/

Visa signatur

CPU : 6700K @ 4,7GHz GPU : 3090 Strix OC RAM : 16GB 3600MHz 15-15-15-35 SSD : Samsung 950 PRO 512GB NVME Bildskärm 1: Strix PG279Q 1440p@165Hz G-SYNC Bildskärm 2: QNIX Q2710 1440p@60Hz

Permalänk
Medlem

Ah, nu är jag med på banan. Missade att du ville skriva något till filen, så jag såg bara ett väldigt underligt försök till att flytta en fil. Detta funkar för mig i Ubuntu i alla fall, så det bör fungera i Windows också förutsatt att du har skrivrättigheter till filen/mappen du försöker skriva till.

#include <iostream> #include <fstream> using namespace std; int main () { ofstream myfile; myfile.open ("/tmp/test.txt"); myfile << "Hello world!\n"; myfile.close(); return 0; }

Du kan ju pröva att lägga in en is_open() på strömmen efter att du har försökt öppna den för att se om den öppnades alls.

Permalänk
Medlem

Laddade först ner crackat visual studio ultimate eller vad det hette, det funkade inte

sen testade jag gratis varianten "express" men jag får upp

1>------ Build started: Project: fsstream, Configuration: Debug Win32 ------
1> fsstream.cpp
1>fsstream.cpp(3): fatal error C1083: Cannot open precompiled header file: 'Debug\fsstream.pch': No such file or directory
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========

När jag försöker compilera programmet som står från början

Visa signatur

CPU : 6700K @ 4,7GHz GPU : 3090 Strix OC RAM : 16GB 3600MHz 15-15-15-35 SSD : Samsung 950 PRO 512GB NVME Bildskärm 1: Strix PG279Q 1440p@165Hz G-SYNC Bildskärm 2: QNIX Q2710 1440p@60Hz

Permalänk
Medlem

Har för mig det ska finnas alternativ så att man kan stänga av precompiled headers någonstans när du skapar projektet. Det kommer ta lite längre tid att kompilera programmet, men det är ju inte speciellt mycket att kompilera.

Permalänk
Medlem

Koden vill ändå inte funka typ

Nu ska jag sova, och imorgon ska jag få det att funka :3

Visa signatur

CPU : 6700K @ 4,7GHz GPU : 3090 Strix OC RAM : 16GB 3600MHz 15-15-15-35 SSD : Samsung 950 PRO 512GB NVME Bildskärm 1: Strix PG279Q 1440p@165Hz G-SYNC Bildskärm 2: QNIX Q2710 1440p@60Hz

Permalänk
Hedersmedlem

Inte piratkopiera.
*låst*