Hallo Zusammen
Habe bisher nur kleine Consolen Anwendungen, in C++ geschrieben. Nun wollte ich mal C# versuchen.
Was ich machen möchte ist ganz simpel, nämlich ein txt file vom C Drive auf einen
USB Stick kopieren. Leider klappt dies nicht, der Code ist ganz simpel da ich nur mal die Funktion testen wollte.
Könnt Ihr mir bitte einen Tip geben wo das Problem liegt?
Bekomme folgende Fehlermeldung: Die Datei " C:\Testfiles\Test.txt konnte nicht gefunden werden. Die Datei ist aber da.
Danke euch
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.IO;
namespace WindowsFormsApplication1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
string sourceFile = @"C:\Testfiles\Test.txt";
string destinationFile = @"f:\1.txt";
File.Copy(sourceFile, destinationFile);
}
}
}
Hallo Ramon99,
entweder die Datei existiert so nicht, oder du hast nicht die nötigen Zugriffsrechte.
Guck mal nach ob in der InnerException evtl. nützliche Informationen stehen.
Oder probiere einfach mal die Datei irgendwo hinzukopieren wo du sicher Zugriffsrechte hast.
Gruß
Michael
Danke Michael für deine Hilfe
Also hier die Details zur Meldung, leider Hilft mir das nicht weiter.
Habe auch als Administrator ausführen versucht, leider auch kein Erfolg.
Zugriff habe ich auch mal bei allen Benutzern auf Voll gesetzt...
Auch vom C drive nach C drive kopieren versucht, macht aber keinen unterschied.
Muss ich die Zugriffsrechte sonst noch wo einstellen (Bild im Anhang)?
Hmm weis ech nicht mehr weiter.
LG Ramon
Fehlermeldung:
System.IO.FileNotFoundException wurde nicht behandelt.
Message=Die Datei "C:\Testfiles\Test.txt" konnte nicht gefunden werden.
Source=mscorlib
FileName=C:\Testfiles\Test.txt
StackTrace:
bei System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath)
bei System.IO.File.InternalCopy(String sourceFileName, String destFileName, Boolean overwrite)
bei System.IO.File.Copy(String sourceFileName, String destFileName)
bei WindowsFormsApplication1.Form1.button1_Click(Object sender, EventArgs e) in C:\Users\Belinda\Documents\Visual Studio 2010\Projects\WindowsFormsApplication3\WindowsFormsApplication3\Form1.cs:Zeile 26.
bei System.Windows.Forms.Control.OnClick(EventArgs e)
bei System.Windows.Forms.Button.OnClick(EventArgs e)
bei System.Windows.Forms.Button.OnMouseUp(MouseEventArgs mevent)
bei System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
bei System.Windows.Forms.Control.WndProc(Message& m)
bei System.Windows.Forms.ButtonBase.WndProc(Message& m)
bei System.Windows.Forms.Button.WndProc(Message& m)
bei System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
bei System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
bei System.Windows.Forms.NativeWindow.DebuggableCallback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
bei System.Windows.Forms.UnsafeNativeMethods.DispatchMessageW(MSG& msg)
bei System.Windows.Forms.Application.ComponentManager.System.Windows.Forms. UnsafeNativeMethods.IMsoComponentManager.FPushMessageLoop(IntPtr dwComponentID, Int32 reason, Int32 pvLoopData)
bei System.Windows.Forms.Application.ThreadContext.RunMessageLoopInner(Int32 reason, ApplicationContext context)
bei System.Windows.Forms.Application.ThreadContext.RunMessageLoop(Int32 reason, ApplicationContext context)
bei System.Windows.Forms.Application.Run(Form mainForm)
bei WindowsFormsApplication1.Program.Main() in C:\Users\Belinda\Documents\Visual Studio 2010\Projects\WindowsFormsApplication3\WindowsFormsApplication3\Program.cs:Zeile 18.
bei System.AppDomain._nExecuteAssembly(RuntimeAssembly assembly, String[] args)
bei System.AppDomain.ExecuteAssembly(String assemblyFile, Evidence assemblySecurity, String[] args)
bei Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssembly()
bei System.Threading.ThreadHelper.ThreadStart_Context(Object state)
bei System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean ignoreSyncCtx)
bei System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
bei System.Threading.ThreadHelper.ThreadStart()
InnerException
Hallo Ramon99,
in deinem Screenshot steht ein anderer Pfad als C:\Testfiles\Test.txt.
Bei File.Copy musst du den physischen Pfad angeben, nicht den Pfad, den der Windows Explorer anzeigt. c:\Programme im Explorer entspricht z.B. den phyischen Pfad e:\Programm Files.
herbivore
Danke euch beiden ...
Habe dass Problem gefunden, ist zu peinlich darum ohne Worte...
Bitte entschuldigt...
LG Ramon
ist zu peinlich darum ohne Worte...
Wenn es dich beruhigt:
Problem beim Einlesen einer Textdatei in Visual Studio 2005 und Kopieren von x Datein durch einer for-Schleife 😉
Ich wundere mich sowieso immer, wie man überhaupt ohne Anzeige der Erweiterung arbeiten kann (und warum das die Standardeinstellung ist).
Nettes Beispiel letztens war eine Silverlight.xap, temporär umbenannt in .zip. Diese Erweiterung verschwand direkt und kann anschließend im Explorer nicht mehr zurück geändert werden.
jap das find ich auch blöd, darum hab ich standartmäßig immer Erweiterungen an, sonst benennst du einmal was um und schon kommst de nicht mehr ran, oder hast den falschen Dateinamen, wie in diesem Beispiel ^^.
Darum deaktiviere ich auch im Windows Explorer immer "Bekannte Dateierweiterungen ausblenden". Wenn wenigstens dann eine Warnmeldung vom Windows beim Anlegen bzw. Umbenennen käme - wäre ja zu einfach auf ".txt.txt" abzufragen...
Damit sollte das Thema erschöpfend behandelt sein.