Miért nem egyforma a 2 string c#ban? Bőbebben lent.
Az egyik programomnal, userneveket kell regisztralni, amikhez bizonyos programbeallitasok tarsulnak. Egy txt filet hasznalok usernevek tarolasara.
Kesobb ezeket az userneveket egy listbox ba kilistazom.
Az igy kapott listbox items kozul kivalasztok 1 et es rakattolok a modositas gombra.
Ekkor a program a listbox selecteditem alapjan egy string be dobja az adott usernevet.
Ezt a stringet felhasznalom egy eleresi ut keszitesehez, hogy megtalalja a program az adott felhasznalohoz tartozo mappat.
Minden esetben azt a valaszt kapom a fejlesztokornyezettol, hogy az eleresi utban nem jo karakterek vannak vagy micsoda.
Eleresi ut:
string winuser=Enviorement.UserName;
string user =listbox1.selecteditem.tostring();
string eleres =@"C:\" + winuser+@"\"+user+@"\valami.txt";
Ellenoriztem a programmal:
If(file.exists(eleres))
{
}
A ciklus false erteket ad. Tehat nem letezik.
Kiirattam az eleresi utat, hogy lassam, mi a rossz benne. Es semmi. Tokeletes.
De megsem letezik.
Ekkor beirtam ezt:
If(user=="HUBVALVA")
{
}
Es ez sem egyeo.
Pedig mikor kiiratom az user erteket az teljesen ugyan az mint a "HUBVALVA"
Egy darab karakter sincs elutve.
Nem ertem miert nem egyforma a ketto.
Ekkor fogtam magam es az egesz kodot attettem egy console app ba.
A consol appban ugye nincs list box. Ezert a: string user="HUBVALVA"; Beirtam.
Es lass csodat a file.exists true ertekkel tert vissza.
Tehat a file letezik...
Visszamentem a formra.
Es ott nem letezik pedig az eleresi ut hibatlan.
Kisse kesze kusza lett a magyarazatom. Remelem ertheto, es valaki tud segiteni.
Hozzateszem hogy nem az elso eset ez.
Csinalnam a progeszt es ilyen legalja dolgok miatt nem tudok haladni.
Nem fer a fejembe h miert bem egyezik.
Keszitettem par fotot. Megosztom a drive-omrol. Mar ha engedi. A kepeken jol latszik minden.
Link:
Remelem mukodni fog a link.
Jah mégsem, látom a @ operátort használod. Mindenekelőtt próbáld admin módban futtatni a programot, kiszűrni a hozzáférési problémákat. (Az is false, ha ott van a file, csak a windows nem engedi hozzáférni.)
Ha mégsem, akkor az ilyen stringes összefűzős gányolás helyett inkább a String.Format-tal próbáld összerakni az elérési utat, vagy még inkább használd a Path osztályt.
Akkor majd kitalalok valamit.
Ezt a string formatot nem ismerem. Utana nezem.
Az 'UserAdmin.cs' 48-ik sorában próbálod beolvasni a sztringet sorról sorra, de '\n' karakterrel választod el. Igenám, de Windowsban az újsor "\n\r" (újsor-kocsivissza), ezért a sorokban van egy plusz nem látható karakter.
A fájlból inkább így olvasd fel:
var result = new List<string>();
string line;
using (var reader = new FileReader(fileName))
while ((line = reader.ReadLine()) != null)
result.Add(line);
var users = result.ToArray();
'r' -el tokeletesen mukodik.
Es ez nekem eleg is. Koszonom.
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!