[C#] SaveFileDialog met bestaand bestand

Pagina: 1
Acties:

  • cam47bubbles
  • Registratie: Januari 2001
  • Laatst online: 09-04 16:55
Hoi,

Ik heb de volgende .net windows applicatie.
Er wordt een Excel bestand geupload. Dit bestand wordt bewerkt. Na succesvolle bewerking komt een Save File As dialog te voor schijn. Dat bewerkte Excel bestand wordt dan als basis gebruikt. De gebruiker moet dan alleen locatie kiezen waar het bestand dient opgeslagen te worden, en kan eventueel de naam veranderen. Als de gebruiker hiervan geen gebruik maakt, dan blijft het bewerkte bestand gewoon beschikbaar in de applicatie root folder.

Ik krijg niet voor elkaar om het bestand direct mee te geven aan de SaveFileDialog. Weet iemand hier iets meer over?

Mvgr.

WJ

  • whoami
  • Registratie: December 2000
  • Laatst online: 30-04 15:31
Wat bedoel je met 'het bestand meegeven aan de SaveFileDialog' ?

https://fgheysels.github.io/


  • cam47bubbles
  • Registratie: Januari 2001
  • Laatst online: 09-04 16:55
Nou dat bewerkte Excel bestand moet als basis genomen worden. De gebruiker krijgt dan mogelijkheid om dat bewerkte bestand op zijn eigen locatie op te slaan.

  • cenix
  • Registratie: September 2001
  • Laatst online: 14:29
Bedoel je dat als het Save File Dialog geopend wordt, het veld Filename (links van de Save knop) gevuld is met de naam van het document? Evt met het complete pad ernaar toe, dus iets als
"c:\docs & settings\<user>\<toolx>\bestand1.xls"

uit de documentatie (http://msdn.microsoft.com...edialogmemberstopic.asp):
FileName (member)
Gets or sets a string containing the file name selected in the file dialog box.
lijkt me dat bij aanroep van het dialog je gewoon het filename field moet zetten.

[ Voor 50% gewijzigd door cenix op 31-08-2005 15:40 ]


  • pjvandesande
  • Registratie: Maart 2004
  • Laatst online: 19:09

pjvandesande

GC.Collect(head);

Kijk is naar de InitialDirectory en FileName propertie. Deze kun je bijde setten. Maar je bent voor mij iig niet helemaal duidelijk.

  • cam47bubbles
  • Registratie: Januari 2001
  • Laatst online: 09-04 16:55
Ik wil dat je het bewerkte (en tijdelijke) Excel bestand dat in de applicatie root folder is opgeslagen kan opslaan op een willekeurige locatie. De safefiledialog moet dan altijd met de My Documents folder beginnen. Naderhand zou dat bestand in de root folder verwijderd moeten worden.

Verwijderd

iets in de trend van:

//met init
saveFileDialog1.InitialDirectory = Environment.GetFolderPath(Environment.SpecialFolder.Personal);
saveFileDialog1.FileName = "test.txt";
saveFileDialog1.ShowDialog();
System.IO.File.CreateText(saveFileDialog1.FileName);

[ Voor 30% gewijzigd door Verwijderd op 31-08-2005 16:06 ]


  • cenix
  • Registratie: September 2001
  • Laatst online: 14:29
en dan natuurlijk nog wel het bestand verwijderen ;)

  • cam47bubbles
  • Registratie: Januari 2001
  • Laatst online: 09-04 16:55
Dat begint er idd op te lijken. Hij biedt het Excel bestand uit de applicatie root folder aan, en je kan het bijvoorbeeld op de desktop saven. Echter het bestand is 0kb. Het bestand in de applicatie root folder is gewoon gevuld.

  • cenix
  • Registratie: September 2001
  • Laatst online: 14:29
Als je iets hebt als (enorme niet geteste pseudo code -- zie documentatie voor meer info)

code:
1
2
3
4
if (SaveDialog.ShowDialog() == DialogResult.OK)
{
 // save file here
}


moet het opzich goed gaan, maar dat kunnen we nu niet zien he. Hoe sla je je bestand op -- graag een beetje code zoals in de richtlijnen aangegeven staat.

[ Voor 12% gewijzigd door cenix op 31-08-2005 16:29 ]


  • cam47bubbles
  • Registratie: Januari 2001
  • Laatst online: 09-04 16:55
Hierbij de code:

code:
1
2
3
4
5
6
7
8
9
sfd.Filter = "Excel files (*.xls)|*.xls" ;
sfd.InitialDirectory = Environment.GetFolderPath(Environment.SpecialFolder.Personal);
sfd.FileName = excelSavePath;

if(sfd.ShowDialog() == DialogResult.OK)
{
    StreamWriter sw = System.IO.File.CreateText(sfd.FileName);
    sw.Close();
}

  • cenix
  • Registratie: September 2001
  • Laatst online: 14:29
Ik heb weinig ervaring met StreamWriter, maar volgens mij schrijf je niets weg, maar creer je een textbestand en sluit je hem meteen.

Je zult dus iets in sw moeten stoppen.

[ Voor 14% gewijzigd door cenix op 31-08-2005 16:38 ]


  • pjvandesande
  • Registratie: Maart 2004
  • Laatst online: 19:09

pjvandesande

GC.Collect(head);

Gebruik gewoon File.Copy.

  • cam47bubbles
  • Registratie: Januari 2001
  • Laatst online: 09-04 16:55
Wat de app dus moet doen is die Excel openen in de applicatie root folder, en dan opslaan op de door de gebruiker gekozen locatie. De filename kan hetzelfde blijven of door de gebruiker veranderd worden.

  • cam47bubbles
  • Registratie: Januari 2001
  • Laatst online: 09-04 16:55
Thanks, dit werkt!

gr.

WJ
Pagina: 1