verwendet I Verwendung C# möchte mehrere Dateien in Google DriveOpenfile Ergebnisse in Datei von einem anderen Prozess wird
dies ist mein Upload-Button-Funktion
private void bt_upload_Click(object sender, EventArgs e)
{
Filedialog_init();
DialogResult check_upload = MessageBox.Show("Want to upload these files ?", "Upload", MessageBoxButtons.OKCancel);
if (check_upload == DialogResult.OK)
{
for (int i = 0; i < result.Count; i++)
{
UploadFilesDrive(service, result[i], filePath[i], Datatype[i]);
tx_state.AppendText(result[i] + "Upload Done");
}
}
}
Dies ist meine Filedialog_init Funktion
hochladenprivate static void Filedialog_init()
{
Stream myStream = null;
OpenFileDialog openFileDialog = new OpenFileDialog();
openFileDialog.InitialDirectory = "c:\\";
openFileDialog.Filter = "bin files (*.bin)|*.bin|All files (*.*)|*.*";
openFileDialog.FilterIndex = 1;
openFileDialog.RestoreDirectory = true;
openFileDialog.Multiselect = false;
if (openFileDialog.ShowDialog() == DialogResult.OK)
{
string filename = null;
string _datatype = null;
try
{
if ((myStream = openFileDialog.OpenFile()) != null)
{
foreach (String file in openFileDialog.FileNames)
{
filename = Path.GetFileName(file);
result.Add(filename);
// only show the name of file
Datatype.Add(_datatype);
}
filePath = openFileDialog.FileNames;
Datatype.ForEach(Console.WriteLine);
}
openFileDialog.Dispose();
}
catch (Exception ex)
{
MessageBox.Show("Error: Could not read file from disk. Original error: " + ex.Message);
}
}
else
MessageBox.Show("Upload Cancel");
}
Ich kann die Datei erfolgreich hochladen, indem Sie den Dateinamen und seinen Datentyp und Pfad direkt
zuweisenAber wenn ich openfiledialog verwendet, ging es schief mit "meine Datei wird von einem anderen Prozess verwendet"
Wie kann ich dieses Problem lösen?
Wo ist der Code, der die Datei-Dialog öffnet sich und gibt die ausgewählten Dateien. Weil Sie in diesem Code irgendwo den Dateizugriff sperren. –
Ich habe versucht, opfiledialog.Dispose() zu verwenden, aber es hat nicht funktioniert –
Diese Zeile '(myStream = openFileDialog.OpenFile()' ist immer noch Sperre für Datei. Versuchen Sie, Stream mit 'using' zu verwenden, so dass es die stream sowie lock. Stattdessen mag es 'using (Stream myStream = openFileDialog.OpenFile()) {Ihr Code hier ...}' –