NOVINKA: Získej 40 hodin praktických dovedností s AI – ZDARMA ke každému akreditovanému kurzu!
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.

Diskuze – Lekce 2 - Úvod do práce se soubory

Zpět

Upozorňujeme, že diskuze pod našimi online kurzy jsou nemoderované a primárně slouží k získávání zpětné vazby pro budoucí vylepšení kurzů. Pro studenty našich rekvalifikačních kurzů nabízíme možnost přímého kontaktu s lektory a studijním referentem pro osobní konzultace a podporu v rámci jejich studia. Toto je exkluzivní služba, která zajišťuje kvalitní a cílenou pomoc v případě jakýchkoli dotazů nebo projektů.

Komentáře
Avatar
blazoid
Člen
Avatar
Odpovídá na blazoid
blazoid:31.10.2015 18:32

Ještě malá poznámka - když jsem si stáhl projekt z těchto stránek, normálně to fungovalo...

 
Odpovědět
31.10.2015 18:32
Avatar
Richard H.
Tvůrce
Avatar
Odpovídá na blazoid
Richard H.:31.10.2015 20:54

To je mi ale záhada..nevidím tam žádnou syntaktickou chybu v C# nepracuje nějak moc ale tohle je fakt divné.

Odpovědět
31.10.2015 20:54
Malý užitečný manuál je vždy lepší než bichle k ničemu.
Avatar
Milan Křepelka
Tvůrce
Avatar
Odpovídá na blazoid
Milan Křepelka:31.10.2015 21:40

Probém bude v mixování názvů namespaců. Ty máš název programu Directory, tedy i název namespacu bude Directory. A používáš Directory.Create.. . Když tam dáš celý název System.IO.Direc­tory.Create..­., tak to bude v pořádku.

 
Odpovědět
31.10.2015 21:40
Avatar
blazoid
Člen
Avatar
Odpovídá na Milan Křepelka
blazoid:6.11.2015 12:34

Tak jsem to napsal dle Tvých rad (System.IO.Di­rectory.Create), když jsem však začal za tečkou psát Create opět nic. Mám však starší verzi MVS - konkrétně 2010, nemůže to být příčinou?

 
Odpovědět
6.11.2015 12:34
Avatar
Milan Křepelka
Tvůrce
Avatar
Milan Křepelka:6.11.2015 13:13

Nepravděpodobné

podle dokumentace je

System.IO.Direc­tory.CreateDi­rectory

s námi již delší dobu

https://msdn.microsoft.com/…vs.110).aspx

Eliminuj chybu. Udělej nový projekt v nějakým lepším názvem. Slovo Directory pro jistotu zcela vynech a zkus to znova.

 
Odpovědět
6.11.2015 13:13
Avatar
blazoid
Člen
Avatar
blazoid:6.11.2015 19:36

Ahoj, tak už to chodí - díky moc.

 
Odpovědět
6.11.2015 19:36
Avatar
Michal Štěpán:27.11.2018 12:14

Ahoj, poprosil bych o radu jak zde v příkladu níže využít a kde try a catch. Intuitivně bych to použil:

try
{
pathToFiles = @"C:\FilesToTes­t1\";
DirectoryInfo d = new DirectoryInfo(pat­hToFiles);
FileInfo[] Files = d.GetFiles("*­.txt");

}
catch(Exception e)
{
Console.Write­Line(e.Message);
}

Ale bohužel proměné, které dále využívám nejsou pro zbytek programu viditelné. Jak to try, catch použít zde? Jedna z možností je dát do try celý kód, ale přijde mi to nesystematické. Díky. Celý kód níže:

using System;
using System.IO;

namespace FilesPlaying
{
class Program
{
static void Main(string[] args)
{
// Variables
string FileWithoutExt;
string FileExtension;
string pathToFiles;

// Path to files and loading the files
try
{
pathToFiles = @"C:\FilesToTes­t1\";
DirectoryInfo d = new DirectoryInfo(pat­hToFiles);
FileInfo[] Files = d.GetFiles("*­.txt");

}
catch(Exception e)
{
Console.Write­Line(e.Message);
}

Console.Write­Line("For loop, files without extensions: ");
for (int i = 1; i < Files.Length + 1; i++)
{
// Only name of the file without extensions
FileWithoutExt = Path.GetFileNa­meWithoutExten­sion(Files[i]­.Name);
// Only extensions
FileExtension = Path.GetExten­sion(Files[i]­.Name);

// Visual check of the separated names and extensions
Console.Write­Line(FileWithou­tExt + " " + FileExtension);

// Putting strings together: path + file without extension + incrementation + extension
if (i < 10) // Adding 0 to incrementation, like 01, 02 etc.
{
Files[i].Move­To(pathToFiles + FileWithoutExt + "0" + i + FileExtension);
}
else // No adding 0 in front of incrementation
{
Files[i].Move­To(pathToFiles + FileWithoutExt + i + FileExtension);
}

Console.Write­Line(Files[i]);
}
Console.ReadKey();
}
}
}

 
Odpovědět
27.11.2018 12:14
Avatar
Odpovídá na Michal Štěpán
Neaktivní uživatel:27.11.2018 17:28

Tak dej

DirectoryInfo d;
FileInfo[] f;

ještě před blok try-catch. Kdyby tě to nechtělo pustit, že to nemá přiřazenou hodnotu, tak tam prostě něco přiřaď (když tam dáš <code>null</code>, můžeš si to pak v pohodě ošetřit i dál).

A používej prosím tlačítko na vložení kódu, pak se to o dost líp čte.

Odpovědět
27.11.2018 17:28
Neaktivní uživatelský účet
Avatar
Odpovídá na Neaktivní uživatel
Michal Štěpán:28.11.2018 6:47

Vyřešeno, díky :).

FileInfo[] Files = new FileInfo[0];
string pathToFiles = String.Empty;

 
Odpovědět
28.11.2018 6:47
Avatar
Natalie Bohmann:22.8.2020 11:35

Kdyby nekdo jako ja nevedel na co je ten zavinac pred jmenem souboru- je to kvuli tomu, ze \ je znak pro escapovani, takze aby ty cesty fungovaly, musely by se psat dva misto jedno backslashe.

 
Odpovědět
22.8.2020 11:35
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 10 zpráv z 32.