Fetstil Fetstil Kursiv Understrykning linje färgläggning tabellverk Punktlista Nummerlista Vänster Centrerat högerställt Utfyllt Länk Bild htmlmode
  • Forum & Blog
    • Forum - översikt
      • .Net
        • asp.net generellt
        • c#
        • vb.net
        • f#
        • silverlight
        • microsoft surface
        • visual studio .net
      • databaser
        • sql-server
        • databaser
        • access
        • mysql
      • mjukvara klient
        • datorer och komponenter
        • nätverk, lan/wan
        • operativsystem
        • programvaror
        • säkerhet, inställningar
        • windows server
        • allmänt
        • crystal reports
        • exchange/outlook
        • microsoft office
      • mjukvara server
        • active directory
        • biztalk
        • exchange
        • linux
        • sharepoint
        • webbservers
        • sql server
      • appar (win/mobil)
      • programspråk
        • c++
        • delphi
        • java
        • quick basic
        • visual basic
      • scripting
        • asp 3.0
        • flash actionscript
        • html css
        • javascript
        • php
        • regular expresssion
        • xml
      • spel och grafik
        • DirectX
        • Spel och grafik
      • ledning
        • Arkitektur
        • Systemutveckling
        • krav och test
        • projektledning
        • ledningsfrågor
      • vb-sektioner
        • activeX
        • windows api
        • elektronik
        • internet
        • komponenter
        • nätverk
        • operativsystem
      • övriga forum
        • arbete karriär
        • erbjuda uppdrag och tjänster
        • juridiska frågor
        • köp och sälj
        • matematik och fysik
        • intern information
        • skrivklåda
        • webb-operatörer
    • Posta inlägg i forumet
    • Chatta med andra
  • Konto
    • Medlemssida
    • Byta lösenord
    • Bli bonsumedlem
    • iMail
  • Material
    • Tips & tricks
    • Artiklar
    • Programarkiv
  • JOBB
  • Student
    • Studentlicenser
  • KONTAKT
    • Om pellesoft
    • Grundare
    • Kontakta oss
    • Annonsering
    • Partners
    • Felanmälan
  • Logga in

Hem / Forum översikt / inlägg

Posta nytt inlägg


Att kopiera en mappstruktur.

Postades av 2004-05-05 15:11:03 - Benni Svensson, i forum c# (c-sharp), Tråden har 6 Kommentarer och lästs av 1803 personer

Jag hittade ett underbart script, som hjälper mig att kopiera en hel mapp-struktur.
http://www.aspemporium.com/aspEmporium/cshrp/howtos/howto.asp?hid=20

Nu ville jag göra lite mera, via en label tala om vilka filer som kopieras.
Detta går inte, jag får ett error när jag försöker.
Jag ropar på classen så här:
<code>
FileCopy(srcdir, destdir, recursive);
//classen börjar så här:

private static void FileCopy(string srcdir, string destdir, bool recursive)
{
DirectoryInfo dir;
FileInfo[] files;
DirectoryInfo[] dirs;
string tmppath;
</code>
I vanliga fall så brukar man ju kunna skriva label1.text osv

Nu får jag felet:
<code>
E:\MultLanguage\MultLanguage\MultLanguage.cs(397): ''MultLanguage.Form1.info'' denotes a ''field'' where a ''class'' was expected
</code>
Går det att komma runt detta?


Svara

Sv: Att kopiera en mappstruktur.

Postades av 2004-05-05 15:22:21 - Johan Bovin

du får nog ge lite mer info, speciellt vad Form1.info är och det är väl på rad 397 som det blir fel. Vad händer på den raden och vad har hänt innan och efter... förmodligen har du gjort nåt syntax fel...


Svara

Sv: Att kopiera en mappstruktur.

Postades av 2004-05-05 16:03:28 - Benni Svensson

Oj, jag trodde att jag gav det mesta.
info är en label.
När jag försöker att få se vilka filer som kopieras:
<code>

files = dir.GetFiles();

//loop through each file
foreach(FileInfo file in files)
{//
info.text = file;//<--------det är här han klagar

//create the path to where this file should be in destdir

tmppath=Path.Combine(destdir, file.Name);
//copy file to dest dir
file.CopyTo(tmppath, false);
}//cleanup
</code>
Så här ser det ut.
När jag gör så här säger han:
<code>
E:\MultLanguage\MultLanguage\MultLanguage.cs(405): ''MultLanguage.Form1.info'' denotes a ''field'' where a ''class'' was expected
</code>
Hjälpte det?


Svara

Sv: Att kopiera en mappstruktur.

Postades av 2004-05-05 16:33:10 - Raderat konto

Du har satt en path for dir förmodar jag ;) :

DirectoryInfo dir = new DirectoryInfo(@"c:\aktiefiler\");

Annars kan du testa:
info.text = file.ToString();//

Det skall fungera, jag har själv gjort motsvarande senast idag.


Svara

Sv: Att kopiera en mappstruktur.

Postades av 2004-05-05 17:00:49 - Benni Svensson

Det ser alltså ut så här:
<code>
DirectoryInfo dir;
FileInfo[] files;
DirectoryInfo[] dirs;
string tmppath;
if (! Directory.Exists(destdir))
{
Directory.CreateDirectory(destdir);
}

dir = new DirectoryInfo(srcdir);

//if the source dir doesn''''t exist, throw
if (! dir.Exists)
{
throw new ArgumentException("source dir doesn''''t exist -> " + srcdir);
}

//get all files in the current dir
files = dir.GetFiles();

//loop through each file
foreach(FileInfo file in files)
{//
info.text = file.ToString();//

</code>
Jag får samma fel.


Svara

Sv: Att kopiera en mappstruktur.

Postades av 2004-05-05 17:43:47 - Benni Svensson

Jag har hittat felet.
Så här var ju orginalet:
<code>
private static void FileCopy(string srcdir, string destdir, bool recursive)
</code>
...men när jag ändrade till:
<code>
private void FileCopy(string srcdir, string destdir, bool recursive)
</code>
...så fungerade det.

Nu uppkommer ju frågan automatiskt, jag får ju inga fel, men är det någonting som "kan hända"?


Svara

Sv: Att kopiera en mappstruktur.

Postades av 2004-05-06 11:52:07 - Benni Svensson

Denna biten fungerar helt ok, men nu skulle jag vilja ha med en progressbar, då uppstår frågan, hur kan jag enkelt räkna hur många filer jag har i den mappen (med undermappar) för att kunna köra en progressbar?

Jag försöker så här;
<code>
private long countFil;
DirectoryInfo nyInf = new DirectoryInfo(folderName);
CountFiles(nyInf);


private void CountFiles(DirectoryInfo dir)
{
countFil++;
foreach(DirectoryInfo subdir in dir.GetDirectories())
{
countFil++;
CountFiles(subdir);
}
}

</code>
...naturligtvis så blir detta fel, Hur bör jag göra?
[REDIGERAT]
Jag lyckades;

<code>
private void countMappar(DirectoryInfo dir)
{
string mapp = dir.ToString();
string[] dirs = Directory.GetDirectories(mapp);
int count = dirs.Length;
for (int i=0; i<count; i++)
{
DirectoryInfo nyMapp = new DirectoryInfo(dirs[i]);
countfiler(nyMapp);
}
}
private void countfiler(DirectoryInfo dir)
{
string[] files = Directory.GetFiles(dir.ToString());
int count = files.Length;
for (int f=0; f<count; f++)
{
totaltAntal = f;
return;
}
smoothProgressBar1.Maximum = totaltAntal;
this.Text = totaltAntal.ToString();
}
//sen var det ju bara att i classen för kopiering...
this.smoothProgressBar1.Value++;
smoothProgressBar1.Refresh();
</code>


Svara

Nyligen

  • 09:09 Vill du köpa medicinska tester?
  • 12:47 Vem beviljar assistansen – kommune
  • 14:17 Någon med erfarenhet av hemstädnin
  • 14:14 Bör man använda sig av en båtförme
  • 14:12 Finns det någon intressant hundblo
  • 14:25 Tips på verktyg för att skapa QR-k
  • 14:23 Tips på verktyg för att skapa QR-k
  • 20:52 Fungerer innskuddsbonuser egentlig

Sidor

  • Hem
  • Bli bonusmedlem
  • Läs artiklar
  • Chatta med andra
  • Sök och erbjud jobb
  • Kontakta oss
  • Studentlicenser
  • Skriv en artikel

Statistik

Antal besökare:
Antal medlemmar:
Antal inlägg:
Online:
På chatten:
4 569 156
27 952
271 704
13 787
0

Kontakta oss

Frågor runt konsultation, rådgivning, uppdrag, rekrytering, annonsering och övriga ärenden. Ring: 0730-88 22 24 | pelle@pellesoft.se

© 1986-2013 PelleSoft AB. Last Build 4.1.7169.18070 (2019-08-18 10:02:21) 4.0.30319.42000
  • Om
  • Kontakta
  • Regler
  • Cookies